Python 金贾路线
在带有Jinja2代码的html页面上,允许在两个页面之间导航的href的正确语法是什么?第一个html模板有一个姓名列表,而另一个模板有个人详细信息 下面是我为显示名称列表的listOfNames.html页面编写的代码Python 金贾路线,python,flask,jinja2,Python,Flask,Jinja2,在带有Jinja2代码的html页面上,允许在两个页面之间导航的href的正确语法是什么?第一个html模板有一个姓名列表,而另一个模板有个人详细信息 下面是我为显示名称列表的listOfNames.html页面编写的代码 <ul> {% for rownum, row in listNames.iterrows() %} <li><a href="/listNames/person/{{row.personId}}">{{ row.f
<ul>
{% for rownum, row in listNames.iterrows() %}
<li><a href="/listNames/person/{{row.personId}}">{{ row.firstName }} {{ row.lastName }}</a></li>
{% endfor %}
</ul>
{对于rownum,是listNames.iterrows()中的行%}
{%endfor%}
下面是server.py代码,它获取/放置(术语的正确用法?)listOfNames.html上的名称
@app.route('/listNames/<bo>/')
def listNames(bo):
listNames = getListNames(bo)
return render_template('listOfNames.html', listNames=listNames)
@app.route('/listNames/'))
def列表名称(bo):
listNames=getListNames(bo)
返回呈现模板('listOfNames.html',listNames=listNames)
这是personInformation.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>
{{person.firstName}
{{person.lastName}
办公室:
{{person.bo}
完成的课程
{%对于rownum,personCompleted.iterrows()中的行%}
{%endfor%}
这是server.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)
@app.route(“/people/”)
def人员(人员id):
person=getPersonOrganization(person\u id)
personCompleted=getPersonCompleted(个人id)
返回呈现模板('personInformation.html',person=person,personCompleted=personCompleted)
最好的方法是使用Flask中的url\u 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>
{对于rownum,是listNames.iterrows()中的行%}
{%endfor%}
最好不要在模板中硬编码您的URL,因为如果您需要重新组织它们,那么您需要到处更新URL。使用
url\u for()
Flask负责使用您在app.route
decorators中提供的信息为您生成url。Miguel。这太棒了,谢谢你!修改后我进入了所有人的主列表,因此我想我在href中遗漏了一些内容。抱歉,没有遗漏任何内容,我必须用正确的查询更新model.py文件。