# 方法1 from flask-sqlalchemy import SQLAlchemy app = Flask(__name__) db = SQLAlchemy(app=app) # 方法2 db = SQLAlchemy() def create_app(): app = Flask(__name__) db.init_app(app=app) return app
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class Student(db.Model): __tablename__ = "tb_student" # 数据库中对应的表的名称 s_id = db.Column(db.Integer, primary_key=True, autoincrement=True) s_name = db.Column(db.String(16), unique=True) s_age = db.Column(db.Integer, default=1)
其中:
Integer表示创建的s_id字段的类型为整形,
primary_key表示是否为主键
String表示该字段为字符串
unique表示该字段唯一
default表示默认值
autoincrement表示是否自增
在视图函数中我们引入models.py中定义的db
db.create_all()表示创建定义模型中对应到数据库中的表
db.drop_all()表示删除数据库中的所有的表
from App.models import db route("/createdb/") .def create_db(): db.create_all() return "创建成功" route('/dropdb/') .def drop_db(): db.drop_all() return '删除成功'推荐使用 SQL 语句来在数据库中创建对应的表, 避免出现不可预知的问题, 但是在建表时一定要注意表与表之间的关联关系, 可以在数据库中建表之后在 shell 环境中导入对应的模型, 来进行 modelName.query.all() 来进行查询, 验证