SQLAlchemy组件应用

步骤:
1、在__init__.py中创建db对象

from flask_sqlalchemy import SQLAlchemy

# 包含了SQLAlchemy相关的所有操作
db = SQLAlchemy()

2、在__init__.py中创建create_app函数中让app传入到db中

def create_app():
    app = Flask(__name__)
    app.config.from_object('settings.DevelopmentConfig')

    from .views.acccount import ac
    app.register_blueprint(ac)

    #看这里
    db.init_app(app)
		
    return app

3、写配置文件,将连接字符串定义在配置文件中

SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@localhost/script?charset=utf8"
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = -1

4、定义models.py

from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, UniqueConstraint
from script import db

class Users(db.Model):
    __tablename__ = 'users'
    id = Column(Integer,primary_key=True,autoincrement=True)   # id:int类型,是主键,自增
    name = Column(String(18),nullable=False,unique=True)    # 可以为空,唯一索引

5、创建数据库表,编写离线脚本:drop_create_table.py

'''
Web运行时,flask程序运行起来,用户通过浏览器访问
离线脚本,自定义的一个py文件+使用flask中定义好的功能
'''
from script import create_app, db, models

app = create_app()
with app.app_context():
    db.drop_all()
    db.create_all()
    # data = db.session.query(models.Users).all()
    # print(data)

6、在视图函使用SQLAlchemy操作数据库

from flask import blueprints
from script import models
from script import db

ac = blueprints.Blueprint('ac',__name__)

@ac.route('/login',methods=['GET','POST'])
def login():

    obj = db.session.query(models.Users).all()
    print(obj)

    db.session.remove()

    return 'Login'
posted @ 2022-06-06 16:12  小日向兰  阅读(110)  评论(0)    收藏  举报