pip install flask_sqlalchemy
官方文档:
Flask-SQLAlchemy — Flask-SQLAlchemy Documentation (3.1.x)
为了不报错 也 需要导入另外两个库
# pip install flask_sqlalchemy
# pip install mysqlclient
完整代码
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# pip install PyMySQL
# pip install flask_sqlalchemy
# pip install mysqlclient
app = Flask(__name__)
class Config:
# 配置数据库的链接
SQLALCHEMY_DATABASE_URI = os.environ['MYSQL_ALL']
# 动态追踪修改设置,如未设置只会提示警告
SQLALCHEMY_TRACK_MODIFICATIONS = False
app.config.from_object(Config)
db = SQLAlchemy(app)
class Role(db.Model):
'''角色表'''
__tablename__ = 'test_la_role'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
class User(db.Model):
'''用户表'''
__tablename__ = 'test_la_user'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128), unique=True)
password = db.Column(db.String(128))
role_id = db.Column(db.Integer, db.ForeignKey('test_la_role.id'))
if __name__ == '__main__':
with app.app_context(): # 激活应用上下文
# 创建数据库引擎,如果是首次运行,需要创建数据库结构
db.create_all()
# 插入初始数据
if not Role.query.first():
role1 = Role(name='admin')
db.session.add(role1)
db.session.commit()
role2 = Role(name='user')
db.session.add(role2)
db.session.commit()
user1 = User(name='admin_user', password='admin123', role_id=role1.id)
user2 = User(name='regular_user', password='user123', role_id=role2.id)
db.session.add_all([user1, user2])
db.session.commit()
app.run(debug=True)
要创建表并插入数据,您已经有了基本框架和模型定义,接下来需要确保数据库连接配置正确,并且取消注释相关的操作代码。我将按照您的代码结构提供一个完善后的示例,包括创建表和插入初始数据的步骤。
确保您的数据库已经创建好了,且MYSQL_ALL
环境变量正确设置为数据库连接字符串。例如,对于MySQL,它可能看起来像这样:
pymysql://username:password@localhost:port/dbname