先安裝Flask-SQLAlchemy,注意先學習藍圖目錄結構html
manage.pymysql
import app my_app = app.create_app() if __name__ == '__main__': my_app.run()
app/__init__.pysql
from flask import Flask my_app = Flask(__name__) from .views.user import user from .views.acc import acc def create_app(): my_app.register_blueprint(acc) #註冊藍圖 my_app.register_blueprint(user) return my_app
基於上面的藍圖目錄結構數據庫
app/__init__.pyjson
from flask import Flask from flask_sqlalchemy import SQLAlchemy my_app = Flask(__name__)
# 實例化SQLAlchemy db = SQLAlchemy() #建立,# PS : 實例化SQLAlchemy的代碼必需要在引入藍圖以前 from .views.user import user from .views.acc import acc def create_app(): # 建立數據庫引擎,從init_app()源碼中能夠看到 my_app.config['SQLALCHEMY_DATABASE_URI']="mysql+pymysql://root:@127.0.0.1:3306/sqlal?charset=utf8" # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的鏈接池大小 my_app.config["SQLALCHEMY_POOL_SIZE"] = 5 # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的鏈接超時時間 my_app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15 my_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(my_app)# 初始化SQLAlchemy , 本質就是將如下的配置讀取出來
my_app.register_blueprint(acc) #註冊藍圖 my_app.register_blueprint(user) return my_app
app/models.pyflask
from app import db,create_app class User(db.Model): #至關於Django的Model __tablename__ = 'user' id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(32),index=True) if __name__ == '__main__': my_app = create_app() db.drop_all(app=my_app) #清空全部繼承db.Model的ORM對象 db.create_all(app=my_app) #去數據庫中建立繼承db.Model的類
在藍圖中操做表session
user.pyapp
from flask import Blueprint,jsonify from app.models import User from app import db user = Blueprint('user',__name__) @user.route('/user') def user_func(): user_obj = User(name='666') db.session.add(user_obj) db.session.commit() return "這是user藍圖頁面" @user.route('/user_list') def user_list_func(): res = User.query.first() #查詢 ret = {"username":res.name} return jsonify(ret)
參考資料:學習
閆龍spa
http://flask-sqlalchemy.pocoo.org/2.3/ (Flask-SQLAlchemy )