如何使用 SQLAlchemy 在 Flask 项目中创建一对多关系

问题描述 投票:0回答:1

我刚开始学习 Flask 和 Flask-SQLAlchemy。我有一个项目,我需要在 User 类和 Place 类之间创建一对多关系

class User(db.Model):
    __tablename__ = 'users'
    UID = db.Column(db.Integer, unique = True, primary_key = True)
    name = db.Column(db.String())
    login = db.Column(db.String(), unique = True,)
    password = db.Column(db.String())

class Place(db.Model):
    __tablename__ = "places"
    id = db.Column(db.Integer(), primary_key = True, unique = True)
    name_of_place = db.Column(db.String(), unique = True)
    price = db.Column(db.Integer())
    desired_season = db.Column(db.String())
    term = db.Column(db.String())

我需要为每个用户分配多个位置

python flask-sqlalchemy
1个回答
0
投票

要在

User
Place
之间创建一对多关系,其中每个用户可以拥有多个位置,这里是一个示例。

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String())
    login = db.Column(db.String(), unique=True)
    password = db.Column(db.String())
    places = db.relationship('Place', backref='user')

class Place(db.Model):
    __tablename__ = "places"
    id = db.Column(db.Integer(), primary_key=True)
    name_of_place = db.Column(db.String(), unique=True)
    price = db.Column(db.Integer())
    desired_season = db.Column(db.String())
    term = db.Column(db.String())
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))

使用

db.ForeignKey()
类构造的整数外键,它是使用该表的主键将一个表与另一个表链接的键。 这使用
Place
的主键(即其 ID)将
User
链接到
User

请随时发表评论以获取进一步的帮助或解释。 :)

我从DigitalOcean - 与 Flask-SQLAlchemy 的一对多数据库关系

的一篇文章中引用了这一点
© www.soinside.com 2019 - 2024. All rights reserved.