Flask之Flask-SQLAlchemy -- 2019-08-07 10:36:07
Posted gqy02
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 test01
app = test01.create_app()
if __name__ == '__main__':
app.run()
__init__.py
from flask import Flask
# 导入flask_sqlalchemy.SQLAchemy
from flask_sqlalchemy import SQLAlchemy
# 实例化SQLAlchemy
db = SQLAlchemy()
# 此操作要在导入蓝图之前(蓝图中会用到此对象)
from .views.user import user
def 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 Blueprint
from test01 import db
from test01.models import User
user = 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/
以上是关于Flask之Flask-SQLAlchemy -- 2019-08-07 10:36:07的主要内容,如果未能解决你的问题,请参考以下文章
Flask框架 之数据库扩展Flask-SQLAlchemy
Flask之Flask-SQLAlchemy -- 2019-08-07 10:36:07
Flask之Flask-SQLAlchemy -- 2019-08-08 20:40:00
Flask之Flask-SQLAlchemy -- 2019-08-08 18:03:34