使用flask-sqlalchemy将字典列表保存到数据库

时间:2017-03-01 22:51:39

标签: python dictionary flask sqlalchemy flask-sqlalchemy

我有一个字典列表,每个字典中有三个键(标题,网址,分数)。

我想使用sqlalchemy(我使用的是sqlite3)将每个字典保存为db模型的单独实例。

我的词典列表被保存到一个名为'final'的变量

这是我的db.Model:

class Favorite(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    tile = db.Column(db.String(100))
    url = db.Column(db.String(150))
    score = db.Column(db.Integer)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __init__(self, title, url, score):
        self.title = title
        self.url = url
        self.score = score

至于我的逻辑,这是我到目前为止所尝试的:

for post in final:
    db.session.add(post)
    db.session.commit()

使用此代码运行程序时出现以下错误:

UnmappedInstanceError: Class '__builtin__.dict' is not mapped

1 个答案:

答案 0 :(得分:1)

您必须从最终列表中的每个dict构造Favorite的实例,然后将其添加到会话并提交。

for post in final:
  fav=Favorite(title=post.get('title'),url=post.get('url'),score=post.get('score'))
  db.session.add(fav)
  db.session.commit()