首页 > 解决方案 > 如何将字符串变量从一类转换为flask-sqlalchemy数据库?

问题描述

所以,我创建了这个小例子来说明我的问题:

我有一个(Flask)应用程序。在此示例中,用户可以上传包含有关某种水果的文本的文件。我提取该信息并将其保存在一个类中以进一步处理,如下所示:

class uploaded_fruits():
     def __init__(self, fruit, taste):
          self.fruit = fruit
          self.taste = taste

我还将信息保存在 sqlalchemy 数据库中,用于存储前端的信息:

class fruits(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    fruit = db.Column(db.String(10))
    taste = db.Column(db.String(50))
    edit = LinkCol('Edit', 'edit', url_kwargs=dict(id='id'))

uploaded_fruits() 中,我存储另一个函数使用的信息,在 defruits()数据库中,我以用户理解的方式存储信息。SW例如,对于我使用 " " inuploaded_fruits()和 " Sweet" in的水果的甜味fruits(),我将这个转换存储在这样的字典中:

Taste_list = {
    "Sweet" : "SW",
    "Sour" : "SO",
    "Salty" : "SA",
    "Bitter" : "BI",
}

例如,如果我有:

apple = uploaded_fruits("apple", "SW")
pear = uploaded_fruits("Pear", "SW")

我想像这样将其插入fuits()数据库中:

class fruits(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    fruit = ["apple", "pear"]
    taste = ["Sweet", "Sweet"]

但我似乎无法做到这一点。我试过这个:

for fruit in uploaded_fruits:
        analyzed_fruits = fruits()
        analyzed_fruits.fruit = fruit.fruit

        # When the text analyses does not conclude on a taste 
        if fruit.taste is None:
            analyzed_fruit.taste = "Taste unknown 1"
        else:
            match_taste = fruit.taste

            for key, value in Taste_list.items():
                if match_taste in value:
                    analyzed_fruit.taste = key
                else:
                    analyzed_fruit.taste = "Taste unknown 2"

         db.session.add(analyzed_file)
         db.session.commit()

但我现在得到的只是"Taste Unknown 2",所以由于某种原因它似乎无法匹配。有人可以帮助我吗?

标签: pythondictionarysqlalchemyflask-sqlalchemy

解决方案


推荐阅读