SQLAlchemy应用到Flask中

安装模块

  • pip install Flask-SQLAlchemy

加入Flask-SQLAlchemy第三方组件

from flask import Flask
 
# 导入Flask-SQLAlchemy中的SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
 
# 实例化SQLAlchemy,db中封装了我们需要的很多东西
db = SQLAlchemy()
# PS : 实例化SQLAlchemy的代码必须要在引入蓝图之前
 
from .views.users import user
  
def create_app():
	app = Flask(__name__)
     # 初始化App配置 这个app配置就厉害了,专门针对 SQLAlchemy 进行配置
     # SQLALCHEMY_DATABASE_URI 配置 SQLAlchemy 的链接字符串,数据库类型+引擎+://+数据库用户名:密码@host/数据库名?charset=utf8
	app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123@127.0.0.1:3306/mydb?charset=utf8"
     # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的连接池大小,最大50个。可选
	app.config["SQLALCHEMY_POOL_SIZE"] = 5
     # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的连接超时时间,可选
	app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15
     # 连接池中的链接能重复利用多少次,SQLALCHEMY_POOL_RECYCLE不用写即可
	app.config["SQLALCHEMY_POOL_RECYCLE"] = None
	app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False  # 改成False,避免报一些错误
 
     # 初始化SQLAlchemy , 本质就是将以上的配置读取出来
	db.init_app(app)
    
	app.register_blueprint(user)
 
	return app

启动文件manage.py

from app import db,create_app

myapp = create_app()

if __name__ == "__main__":
    myapp.run()

建立models.py ORM模型文件

from app import db

# Base = db.Model ===> Base = declarative_base()
class Users(db.Model):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)

if __name__ == '__main__':
    from app import create_app
    app = create_app()
    db.create_all(app=app)

登录视图函数的应用

from flask import Blueprint

user = Blueprint("user", __name__)

from app.models import Users
from app import db
@user.route("/user_list")
def user_list():
    db.session.add(Users(name="nihao"))
    db.session.commit()
    res = Users.query.filter().all()
    return f"{len(res)}"
posted @ 2019-10-18 13:52  Lowell  阅读(124)  评论(0编辑  收藏  举报