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

四十九:数据库之Flask-SQLAlchemy下alembic的配置

flask强大的第三方组件之falsk-sqlalchemy