理解Flask-sqlalchemy relationship backref 外键 一对多
用户表 user 字段: id username groupid
用户组表 group 字段: id
group_name
怎么通过user获取group的名字?
怎么通过group表获取某个groupid对应的所有user呢
1. 模型代码
class User(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(64), index=True, unique=True)
# 1对多: 多方定义外键 指向1方主键
groupid = db.Column(db.Integer, db.ForeignKey('group.id'))
class Group(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
group_name = db.Column(db.String(50))
# 1对多: 1方定义关系 反向引用
users = db.relationship("User", backref="mygroup")
注意: user 用户表的 ForeignKey
, group 用户组表的 relationship
backref
2. HTML模板代码
<h1>{{ user.username }}</h1>
{% if user.groupid %}
<p> {{ user.mygroup.group_name }}</p>
{% endif %}
{{ user.mygroup }}
就是用户组表了{{ user.mygroup.group_name }}
就是用户组名称
{{ group.users}}