1. 程式人生 > >Flask 關聯數據庫

Flask 關聯數據庫

訪問 tex integer lena rmi spa blog view col

#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 關聯數據庫