一对多关系烧瓶
One to many relationship flask
我有 class 代表东西:
class Stuff(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Integer, nullable=False)
name = db.Column(db.String(100), unique=True, nullable=False)
logo = db.Column(db.Text)
description = db.Column(db.Text)
def __repr__(self):
return '<Stuff %r>' % self.name
并且有 class 代表用户:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
name = db.Column(db.String(80), unique=False, nullable=False)
cart = db.Column(db.Text)
def __repr__(self):
return '<User %r>' % self.name
这里的购物车是 json 字符串,例如“[Stuff_id_1”、“Stuff_id_2”]“
要添加新项目,我只需更改此字符串
示例:我需要从购物车中删除最后一项(“[[Stuff_id_1”,“Stuff_id_2”]”)。为此,我只需将字符串更改为“[Stuff_id_1”]”并编辑用户模型中的购物车列。
我知道我使用购物车栏的方式很愚蠢
如何建立一对多关系?
要建立这种关系 One-to-Many,您需要编辑 Stuff
class 并将外键添加到 User
table。
class Stuff(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Integer, nullable=False)
name = db.Column(db.String(100), unique=True, nullable=False)
logo = db.Column(db.Text)
description = db.Column(db.Text)
user_id = db.Column(db.ForeignKey('name_of_users_table.id'))
user = relationship('User', backref='user_stuffs')
def __repr__(self):
return '<Stuff %r>' % self.name
现在你可以像这样使用关系:
user = User()
stuff = Stuff()
# Add to the relationship
user.user_stuffs.append(stuff)
db.session.commit()
我有 class 代表东西:
class Stuff(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Integer, nullable=False)
name = db.Column(db.String(100), unique=True, nullable=False)
logo = db.Column(db.Text)
description = db.Column(db.Text)
def __repr__(self):
return '<Stuff %r>' % self.name
并且有 class 代表用户:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
name = db.Column(db.String(80), unique=False, nullable=False)
cart = db.Column(db.Text)
def __repr__(self):
return '<User %r>' % self.name
这里的购物车是 json 字符串,例如“[Stuff_id_1”、“Stuff_id_2”]“
要添加新项目,我只需更改此字符串
示例:我需要从购物车中删除最后一项(“[[Stuff_id_1”,“Stuff_id_2”]”)。为此,我只需将字符串更改为“[Stuff_id_1”]”并编辑用户模型中的购物车列。
我知道我使用购物车栏的方式很愚蠢
如何建立一对多关系?
要建立这种关系 One-to-Many,您需要编辑 Stuff
class 并将外键添加到 User
table。
class Stuff(db.Model):
id = db.Column(db.Integer, primary_key=True)
price = db.Column(db.Integer, nullable=False)
name = db.Column(db.String(100), unique=True, nullable=False)
logo = db.Column(db.Text)
description = db.Column(db.Text)
user_id = db.Column(db.ForeignKey('name_of_users_table.id'))
user = relationship('User', backref='user_stuffs')
def __repr__(self):
return '<Stuff %r>' % self.name
现在你可以像这样使用关系:
user = User()
stuff = Stuff()
# Add to the relationship
user.user_stuffs.append(stuff)
db.session.commit()