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'