关联用户
user_id = db.Column(db.Integer, db.ForeignKey('accounts_user.id'))
# 关联问题
q_id = db.Column(db.Integer, db.ForeignKey('qa_question.id'))
# 建立与用户的一对多属性
user = db.relationship('User', backref=db.backref('question_follow_list', lazy='dynamic'))
# 建立与问题的一对多属性
question = db.relationship('Question', backref=db.backref('question_follow_list',
设计数据库
class User(db.Model):
“”" 用户模型 “”"
tablename = ‘accounts_user’
id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键
# 用户名,用于登录
username = db.Column(db.String(64), unique=True, nullable=False)
# 用户昵称
nickname = db.Column(db.String(64))
password = db.Column(db.String(256), nullable=False)
# 用户的头像地址
avatar = db.Column(db.String(256))
# 是否有效,无效用户将不能登录系统
status = db.Column(db.SmallInteger,
default=constants.UserStatus.USER_ACTIVE.value,
comment='用户状态')
# 是否是超级管理员,管理员可以对所有内容进行管理
is_super = db.Column(db.SmallInteger,
default=constants.UserRole.COMMON.value)
# 创建时间
created_at = db.Column(db.DateTime, default=datetime.now)
# 最后修改的时间
updated_at = db.Column(db.DateTime,
default=datetime.now, onupdate=datetime.now)
# profile = db.relationship('UserProfile')
class UserProfile(db.Model):
“”" 用户详细信息 “”"
tablename = ‘accounts_user_profile’
id = db.Column(db.Integer, primary_key=True) # 主键
# 用户名,用于登录
username = db.Column(db.String(64), unique=True, nullable=False)
# 用户真实姓名
real_name = db.Column(db.String(64))
# 用户的格言
maxim = db.Column(db.String(128))
# 性别
sex = db.Column(db.String(16))
# 地址
address = db.Column(db.String(256))
# 创建时间
created_at = db.Column(db.DateTime, default=datetime.now)
# 最后修改的时间
updated_at = db.Column(db.DateTime,
default=datetime.now, onupdate=datetime.now)
# 关联用户
user_id = db.Column(db.Integer, db.ForeignKey(‘accounts_user.id’))
# 建立用户的一对一关系属性user.profile profile.user
user = db.relationship(‘User’, backref=db.backref(‘profile’, uselist=False))