金贾柔Flask

2024-09-30 16:28:12 发布

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

在带有Jinja2代码的html页面上,允许在两个页面之间导航的href的正确语法是什么?第一个html模板有一个姓名列表,而另一个有个人详细信息。在

这是我的密码列表名称.html显示名称列表的页面。在

<ul>
    {% for rownum, row in listNames.iterrows() %}
        <li><a href="/listNames/person/{{row.personId}}">{{ row.firstName }} {{ row.lastName }}</a></li>
    {% endfor %}
</ul>

这是服务器.py获取/放置的代码(术语的正确使用?)上面的名字列表名称.html. 在

^{pr2}$

这是个人信息.html. 在

<main role="main" class="col-sm-9 ml-sm-auto col-md-10 pt-3">
    <h1>{{ person.firstName }}
            {{ person.lastName }}
    </h1>
    <h2>Office:
          {{ person.bo }}
    </h2>
    <h2>Courses Completed
    </h2>
        <ul>
            {% for rownum, row in personCompleted.iterrows() %}
            <li><a href="/courses/{{row.courseId}}">
                {{row.courseTitle}}
            </a></li>
            {% endfor %}
          </ul>
     </main>

这是服务器.py代码。在

    @app.route('/people/<person_id>')
def person(person_id):
    person = getPersonOrganization(person_id)
    personCompleted = getPersonCompleted(person_id)
    return render_template('personInformation.html',  person=person, personCompleted=personCompleted)

Tags: 代码名称id列表formainhtml页面
1条回答
网友
1楼 · 发布于 2024-09-30 16:28:12

最好的方法是使用Flask中的url_for()函数。这是您的新listOfPeople.html模板,带有链接:

<ul>
    {% for rownum, row in listNames.iterrows() %}
        <li><a href="{{ url_for('person', person_id=row.personId) }}">{{ row.firstName }} {{ row.lastName }}</a></li>
    {% endfor %}
</ul>

最好不要在模板中硬编码您的url,因为如果您需要重新组织它们,那么您将需要在所有地方更新url。对于url_for(),Flask使用您在app.route装饰器中提供的信息为您生成url。在

相关问题 更多 >