flask db query.all读取一列数据

问题描述 投票:-1回答:1

我需要查询我的数据库并将其中一个列值重新分配给另一个值,并将新值传递给模板进行渲染。我是否应该尝试在烧瓶或模板中完成此操作?我怎么能做到这一点?

我有db模型:

class Items(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    item_name = db.Column(db.String(60), unique=True, nullable=False)
    item_type = db.Column(db.String(1), nullable=False)

我有烧瓶功能:

@auth.route('/items', methods=['GET', 'POST'])
@login_required
def list_items():
    items = Items.query.all()
    if items.item_type == "s":
      items.item_type = "Sod"
    return render_template('auth/item_list.html', items=items, title='Items')

我有模板:

<tbody>
{% for item in items %}                    
<tr>
 <td> {{ items.item_name }} </td>
 <td> {{ items.item_type }} </td>
</tr>
{% endfor %}
</tbody>         
flask flask-sqlalchemy
1个回答
0
投票

你应该遍历items来检查每个item_typeitem

for item in items:
    if item.item_type == 's':
        item.item_type = "Sod"

您的模板文件中存在错误:

{% for item in items %}
<tr>
    <td>{{ item.item_name }}</td>
    <td>{{ item.item_type }}</td>
</tr>
{% endfor %}     
© www.soinside.com 2019 - 2024. All rights reserved.