Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 金贾路线_Python_Flask_Jinja2 - Fatal编程技术网

Python 金贾路线

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

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

下面是我为显示名称列表的listOfNames.html页面编写的代码

<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文件。