代码之家  ›  专栏  ›  技术社区  ›  Ari

将Flask变量从HTML发送回具有url的Flask\u for()

  •  0
  • Ari  · 技术社区  · 6 年前

    我正在尝试创建一个小的工作板,每个工作卡都是从一个列表的flask中动态插入的(现在,稍后将是一个sqldb)

    Screenshot

    当用户单击按钮时 View Task 我希望它转到另一个页面,在那里它可以更详细地显示任务/作业。

    我希望附加到该按钮的是作业/任务ID。

    {% for task in available_tasks %}
    <div>
       <a href="{{ url_for('view_task', task_id={{ task['id'] }}) }}">View Task</a>
    </div>
    {% endfor %}
    

    app.route('/view_task/<task_id>')
    def view_task(task_id):
       task_data = task_database[taskid]
       return render_template('detailed_view.html', task_info=task_data)
    

    我的问题是 href="url_for('view_task', task_id={{ task['id'] }})" 不行,有办法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Martijn Pieters    6 年前

    您生成了输出 href="url_for('view_task', task_id=<some id>)" url_for(..)

    url_for() {{ ... }}

    href="{{ url_for('view_task', task_id=task['id']) }}"
    

    的url\u() 实际上被视为Jinja2要执行的表达式,此时HTML生成的将包含 href="http://localhost:5000/view_task/<some id>"