from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 配置数据库地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://wan:myspl@127.0.0.1/flask_sql_demo'
# 跟踪数据库的修改-->不建议开启未来的版本中会移除
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
"""
两张表
角色(管理员/普通用户)
用户(角色ID)
"""
# 数据库模型,需要继承db.Model
class Role(db.Model):
# 定义表名
__tablename__ = 'roles'
# 定义字段
# db.Model表示一个字段
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
# 写关联
# users = db.relationship('User'):表示和User模型发生了关联,增加一个users属性
# backref='role':表示role是User要用的属性
users = db.relationship('User', backref='role')
# 用__repr__打印一个可读字符串
def __repr__(self):
return '<Role: %s %s' % (self.name, self.id)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
email = db.Column(db.String(32), unique=True )
# db.ForeignKey('role.id')表示外键,表名.id
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
# 删除表
db.drop_all()
# 创建表
db.create_all()
app.run()
网友评论