启动pycharm,创建flask项目。
在开始开发前,需要引入几个必须的包,他们是:
建立32位与sql数据库连接的dsn,如果系统是64位的,需要到C:\Windows\SysWOW64下启动odbcad32.exe创建dsn。
配置项目的python运行环境,在pycharm中 alt+ctrl+s 进入项目的设置,选择 project interpreter ,设置python的运行环境,选择python3.4作为运行环境。
为了测试系统运行,在sqlserver management studio中创建testflask表,包括Id_P, LastName, FirstName,Address, City属性并添加几行数据。在模型中必须指定某个字段的primary key。
示例代码如下(run.py):
from flask import Flask, jsonify, request from flask_sqlalchemy import SQLAlchemy from sqlalchemy.sql import func app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://username:password@dsn'#(替换成自己的用户名,密码和dsn) db = SQLAlchemy(app) class testflask(db.Model): #创建model,对应数据库中的表 Id_P = db.Column(db.Integer, primary_key=True) LastName = db.Column(db.String(255)) FirstName = db.Column(db.String(255)) Address = db.Column(db.String(255)) City = db.Column(db.String(255))
@app.route('/test/list', methods=['GET']) def get_data(): myData = testflask.query.all() output = [] for record in myData: r_data = {} r_data['Id_P'] = record.Id_P r_data['FirstName'] = record.FirstName r_data['LastName'] = record.LastName r_data['Address'] = record.Address r_data['City'] = record.City output.append(r_data) return jsonify({'message': output}) if __name__ == '__main__': app.run(debug=True)
////////////////////////////////////////示例代码结束////////////////////////////////////////////////////
运行代码,在浏览器中url: http://127.0.0.1:5000/ test/list 测试
7.创建tornado托管程序tornado_server.py 与主程序同一个目录下,代码为:
#coding=utf-8
#!/usr/bin/python
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from run import app #与上述代码相同
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000) #flask默认的端口,可任意修改
IOLoop.instance().start()
8 创建32位dns.
9 启动虚拟环境和python,在虚拟环境安装路径C:\restService\restService\Scripts,.\activate 启动虚拟环境 ;
Python tornado_server.py 启动应用程序
10. 启动 nginx : 命令行: start nginx
11. 最后就是测试http请求。