python之创建数据库表

# 安装以下模块
#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)

你可能感兴趣的:(Python)