码迷,mamicode.com
首页 > 数据库 > 详细

Flask 关联数据库

时间:2017-05-04 00:10:52      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:关联   ring   role   uniq   pre   back   name   view   ida   

 

 

#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 关联数据库

标签:关联   ring   role   uniq   pre   back   name   view   ida   

原文地址:http://www.cnblogs.com/bahcelor/p/6804472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!