【Flask之Flask-SQLAlchemy】 񣭳

时间:2019-08-19
本文章向大家介绍【Flask之Flask-SQLAlchemy】 񣭳,主要包括【Flask之Flask-SQLAlchemy】 񣭳使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

原文: http://blog.gqylpy.com/gqy/377

"安装: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://blog.gqylpy.com/gqy/377

原文地址:https://www.cnblogs.com/gqy02/p/11374969.html