我在基于Flask和Flask-SQLAlchemy的网站上使用MySQL。我有一大堆Feed,每个Feed都有一些数据,但它需要一个函数。
首先,我使用MySQL-python(使用原始SQL)来存储数据,并且使用插件系统进行提要,因此每个提要都会覆盖update()函数以按照方式导入数据。
现在我改为使用Flask-SQLAlchemy并将Feed模型添加到数据库中,因为它有助于SQLAlchemy ORM,但我一直坚持如何处理update()
函数?
update()
语句使if self.name == ""
函数处理所有Feed。添加了一些代码位。
Feed模型:
class Feed(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
datapieces = db.relationship('Datapiece', backref = 'feed', lazy = 'dynamic')
update()
功能
def update(self):
data = parsedata(self.data_source)
for item in data.items:
new_datapiece = Datapiece(feed=self.id, name=item.name, value=item.value)
db.session.add(new_datapiece)
db.session.commit()
我希望在选项2中实现的目标是:
for feed in Feed.query.all():
feed.update()
每个Feed都会使用自己的类update()
。
答案 0 :(得分:0)
扩展类并添加.update()方法就是它应该如何适用于选项2。 我没有看到任何问题(我一直在使用这种编码风格的烧瓶/ sqlalchemy)。
如果您(可以)省略动态惰性属性,您还可以执行以下操作:
self.datapieces.append(new_datapiece)
在Feed的更新功能中。