首页 > 代码库 > Flask 关联数据库
Flask 关联数据库
#models.py class Role(db.Model): __tablename__ = ‘roles‘ id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship(‘User‘, backref=‘role‘, lazy=‘dynamic‘) class User(UserMixin, db.Model): __tablename__ = ‘users‘ id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(64), unique=True, index=True) username = db.Column(db.String(64), unique=True, index=True) password_hash = db.Column(db.String(128)) role_id = db.Column(db.Integer, db.ForeignKey(‘roles.id‘), nullable=True) ticketholiday_id = db.relationship(‘Ticketholiday‘, backref=‘user‘, lazy=‘dynamic‘) class Ticketholiday(db.Model): __tablename__ = ‘ticketholidays‘ id = db.Column(db.Integer, primary_key=True) type = db.Column(db.Integer) about = db.Column(db.Text) user_id = db.Column(db.Integer, db.ForeignKey(‘users.id‘), nullable=False)
注意你在Role数据库模型中的users,它并不是roles表中的字段,users = db.relationship(‘User‘, backref=‘role‘, lazy=‘dynamic‘),relationship的第一个参数表示这个关系的另一个数据库模型是哪个,这里是User,第二个参数backref表示给关联的数据库模型添加一个属性,这里是role。
也就是说,你可以通过User模型的role这个属性去访问Role模型,比如你在views.py中的查询结果,你可以通过user.role.name得到roles表中对应记录的name,user.role.id则得到roles表中对应记录的id
注意名称的大小写,一一对应
Flask 关联数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。