我在一个基于 Flask 和 Flask-SQLAlchemy 和 MySQL 的网站上工作。我有一堆提要,每个提要都有一些数据,但它需要一个函数。
起初,我使用 MySQL-python(带有原始 SQL)来存储数据,并且提要位于插件系统上,因此每个提要都覆盖 update() 函数以按其方式导入数据。
现在我改为使用 Flask-SQLAlchemy 并将 Feed 模型添加到数据库中,因为它有助于 SQLAlchemy ORM,但我被困在如何处理update()
函数上?
- 保持插件系统与数据库模型并行,但我认为这是不切实际/无效的。
- 扩展模型类,我不确定这是否可能,例如 FeedOne(Feed) 将仅代表 item(name="one")。
- 通过 using语句使
update()
函数处理所有提要。if self.name == ""
添加了一些代码位。
饲料型号:
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()
并且每个提要都将使用自己的类update()
。