# 安装以下模块
#pip3 install flask-mysqldb
#pip3 install flask
#pip3 install flask_sqlalchemy
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
class Config(object):
"""配置参数"""
'''sqlalchemy的配置参数'''
SQLALCHEMY_DATABASE_URI = "mysql://root:[email protected]:3306/flask_mysql"
'''设置sqlalchemy自动跟踪数据库'''
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 设置参数
app.config.from_object(Config)
'''创建数据库 sqlalchemy 工具对象'''
db = SQLAlchemy(app)
"""
创建数据库模型类(继承 sqlalchemy 工具对象中的Model类),一个模型类对应一张模型表
数据库表名的常见规范:
(1) 数据库名缩写_表名 (2) tbl_表名
"""
class Role(db.Model):
"""用户身份表"""
__tablename__ = "tbl_roles"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
'''
relationship()把两个表关联在一起,不添加也是可以的,根据自己的需求
backref : 在关系的另一模型中添加反向引用
相当于给要关联的表添加一个role属性
不添加也是可以的,根据自己的需求
'''
user = db.relationship("User", backref="role") # 从模型类中
class User(db.Model):
"""用户表"""
__tablename__ = "tbl_users" # 指明数据库的表名
id = db.Column(db.Integer, primary_key=True) # 整型的主键,会默认设置为自增主键
name = db.Column(db.String(64), unique=True)
email = db.Column(db.String(128), unique=True)
password = db.Column(db.String(128))
role_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id")) # 从底层中
if __name__ == '__main__':
'''清除数据库中的所有数据'''
'''创建所有表'''
db.create_all(app=app)