如何让jinja在我的html网页上工作

2024-06-16 14:48:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从html网页中获取数据并将其放在html网页上的表称为“Conservative”,但在我放置jinja变量的网页上没有显示任何数据。 以下是烧瓶代码:

@app.route("/consrecommend")
@login_required
def consrecommend():
"""Show Conservative Recommendations"""
user_id = session["user_id"]
contransactions = db.execute("SELECT name, percentage, investment FROM conservative WHERE 
                              user_id = ?", user_id)

for i in range(len(contransactions)):
    contransactions[i]["investment"] = usd(contransactions[i]["investment"])
return render_template("consrecommend.html", contransactions=contransactions)

html网页上没有显示来自“保守”数据库的数据。以下是网页上的jinja代码:

{% extends "layout.html" %}

{% block title %}
    Conservative Portfolio Recommendation
{% endblock %}

{% block main %}
   <table>
       <thead>
            <tr>
                <th>Name</th>
                <th>Percentage</th>
                <th>Investment</th>
           </tr>
        </thead>

        <tbody>
            {% for contransaction in contransactions %}
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            <tr>
                <td> {{ contransaction["name"] }} </td>
                <td> {{ contransaction["percentage"] }} </td>
                <td> {{ contransaction["investment"] }} </td>
            </tr>
            {% endfor %}
        </tbody>
    </table><br><br>
    <center><img class="img-scale" src="{{ static('/images/consport.jpg') }}" 
             alt="Conservative Portfolio" /></center>
{% endblock %}

Tags: nameid网页htmltrjinjatdpercentage
1条回答
网友
1楼 · 发布于 2024-06-16 14:48:29

我希望您正在使用SQLite3

在sqlite3中,如果使用cur.execute函数,它将返回sqlite3.Cursor,这是一个iterator。您可以直接将for循环用于这个返回的对象

请记住,因为这是一个迭代器,所以一旦读取它,就会丢失所有数据

因此,您必须在阅读时保存数据。这就是为什么需要使用.fetchall(),它将返回queryset列表

注: 如果您正在使用另一个数据库,如postgres,pscopg2.cursor.execute函数在sqlite中不会返回类似sqlite3.Cursor的任何内容,因此您无法直接运行循环。您应该调用.fetchall()函数

相关问题 更多 >