【问题标题】:Python: get correct link with dynamic URLs in Flask with url_for()Python:使用 url_for() 在 Flask 中获取正确的动态 URL 链接
【发布时间】:2022-11-12 05:11:58
【问题描述】:

我有 html 模板和 python 函数(driver_links),我的功能性工作,但我有错误的链接

html 模板(driver_id.html):

<a href="{{ url_for('driver_links', driver_id=key[0]) }}">{{key[0]}}</a>

功能:

@app.route("/report/drivers/<driver_id>")
def driver_links(driver_id):

    context = {

        "report": sort_asc_desc('data', 'asc'),
        "test": driver_id
    }
    return render_template('driver_id.html', **context)

我有错误的链接:http://127.0.0.1:5000/report/drivers/SVF

如果我将函数(driver_links)中的@app.route 更改为:

@app.route("/report/drivers/")

我得到一个正确的链接,但功能不起作用

示例正确链接:http://127.0.0.1:5000/report/drivers/?driver_id=SVF

【问题讨论】:

    标签: python html flask url jinja2


    【解决方案1】:

    variable rules 或 url 参数之间进行选择。
    如果使用前者,则所需的提取参数将作为变量传递给函数。

    @app.route("/report/drivers/<driver_id>")
    def driver_links(driver_id):
        # ...
    

    对于后者,您必须要求可选的来自字典 request.args 的参数,并且没有参数传递给函数。

    @app.route("/report/drivers/")
    def driver_links():
        driver_id = request.args.get('driver_id')
        # ...
    

    【讨论】:

      猜你喜欢
      • 2011-11-20
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      相关资源
      最近更新 更多