【Flask之Flask-SQLAlchemy】 — 2019-08-07 10:36:07

原创: 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/

相关文章