首页 > 解决方案 > 如何将 url 从 Jinja2 模板传递到 Flask 应用程序路由/函数,如果参数包含空格

问题描述

我想从包含空格的 Jinja2 模板将参数传递给 Flask 应用程序。在下面的示例中,我试图通过达拉斯牛仔队。

模板

{% set homeTeam = 'Dallas Cowboys'%}
{% set league = 'nfl' %}
{% set sport = 'football' %}

{% set url = '/details/' + sport + '/' + league + '/' + homeTeam %}
<a href={{url}}>{{time_formatted}} - {{homeTeam}} vs. {{awayTeam}}</a>
             
<a href={{url}}>Click Me</a> 

我在这里想要的是:

<a href="/details/football/nfl/dallas%20cowboys>Click Me</a>

我得到的是:

<a href="/details/football/nfl/dallas" cowboys ="">Click Me</a>

我希望能够在下面的 Flask 函数中打印“Dallas Cowboys”:

应用程序

@app.route('/details/<sport>/<league>/<home_team>')
    def details(sport, league, home_team):
        print(sport, league, home_team) #I need "Dallas Cowbows" for home_team
        return render_template('details.html', sport=sport, league=league, home_team=home_team)

标签: python-3.xflaskjinja2

解决方案


模板

<a href='{{url_for('details', sport='football', league='nfl, home_team='Cowboys' > Click </a>

这应该有效,注意使用 url_for ,将所有参数传递给后端,就是这样。


推荐阅读