原创: http://106.13.73.98/__/26/
安装:pip install Flask-SQLAlchemy
Flask-SQLAlchemy 比起 SQLAlchemy 更加的简单自如,用法几乎一模一样,就是在配置和启动上需要注意与 Flask 的配合。
我们的项目目录结构如下:
manager.py
import test01app = test01.create_app()if __name__ == '__main__': app.run()
__init__.py
from flask import Flask# 导入flask_sqlalchemy.SQLAchemyfrom flask_sqlalchemy import SQLAlchemy# 实例化SQLAlchemydb = SQLAlchemy()# 此操作要在导入蓝图之前(蓝图中会用到此对象)from .views.user import userdef create_app(): app = Flask(__name__) app.config['DEBUG'] = True # 基于上下文配置SQLAchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://zyk:blog@zyk@localhost:3306/db03?charset=utf8' app.config['SQLALCHEMY_POOL_SIZE'] = 10 # SQLAlchemy 的连接池大小 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 初始化app,本质上是将以上的配置读取出来 db.init_app(app) # 可通过init_app查看SQLAlchemy的配置关键字 app.register_blueprint(user) return app
models.py
# 创建ORM对象,及关联数据表from test01 import db# 此时的db是干净的,未添加任何配置# db.Model ORM模型基类# 创建User数据表class User(db.Model): __tablename__ = 'user' id = db.Column(db.INT, primary_key=True) # 自动自增 name = db.Column(db.VARCHAR(32))if __name__ == '__main__': # 绕过应用上下文创建关联数据表,剩下的就是应用了 from test01 import create_app app = create_app() db.drop_all(app=app) db.create_all(app=app)# 运行后将创建数据表
user.py
from flask import Blueprintfrom test01 import dbfrom test01.models import Useruser = Blueprint('user', __name__)@user.route('/user')def user_func(): # 添加数据 db.session.add(User(name='user01')) db.session.commit() # 查询数据 user_obj = db.session.query(User).first() return user_obj.name
原创: http://106.13.73.98/__/26/