flask 如何 连接 sql server

开发环境准备

  • 安装python 3.4 及pip,注意:flask目前版本不支持3.6的python 
  • 安装pycharm,pycharm作为 python的GUI开发调试工具使用起来很方便,在pycharm上可以直接创建flask项目。

开发

启动pycharm,创建flask项目。

在开始开发前,需要引入几个必须的包,他们是:

  • sqlalchemy
  • flask-sqlalchemy
  • pydoc

建立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 测试

部署(flask+nginx+tornado)

  1. 下载  nginx ,安装:解压,复制到c:\目录下
  2. 配置 nginx:  配置C:\nginx-1.14.0\conf目录下nginx.conf 文件,设置   location / {proxy_pass http://localhost:5000;
  3. 使用netstat -ano|findstr "80" 查看是否该端口被占用,如果被占用需要改端口
  4. 安装python3.4.3 下载路径:https://download.csdn.net/download/qq_27532427/8817105 ,3.6.5的不支持 flask
  5. 安装 virtualenv: 到pip目录下C:\Python34命令行运行 :pip install virtualenv ,用管理员用户启动power shell,如在windows server power shell命令行下,执行:.\pip install virtualenv 。在c盘创建部署目录 :c:\restService,创建虚拟环境,在c:\restService 目录下,执行:virtualenv -p "c:\Python34\python.exe"  restService --distribute --no-site-package ,
  6. 在创建的虚拟目录下的pip路径下安装项目所依赖的包:.\pip install xxx,将依赖包安装到虚拟环境下
  •  Flask
  • sqlalchemy
  • flask-sqlalchemy
  • pyodbc 等
  • tornado

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请求。

 

 

 

 

 

你可能感兴趣的:(flask 如何 连接 sql server)