python - 使用 url_for() 将 Flask 变量从 HTML 发送回 Flask
问题描述
我正在尝试创建一个小工作板,每个工作卡都是从列表中的烧瓶中动态插入的(现在,稍后将是一个 SQL DB)
当用户单击按钮时,View Task
我希望它转到另一个页面,在该页面中更详细地显示任务/作业。
我想附加到该按钮的是作业/任务 ID。
这就是我希望/期望按钮起作用的方式
{% for task in available_tasks %}
<div>
<a href="{{ url_for('view_task', task_id={{ task['id'] }}) }}">View Task</a>
</div>
{% endfor %}
然后可以将其粘贴到将 ID 作为参数并获取完整作业/任务信息的路由中。
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'] }})"
不起作用,有没有办法做到这一点?
解决方案
您生成了 output href="url_for('view_task', task_id=<some id>)"
,因此文字文本url_for(..)
位于生成的 HTML 中并传送到您的浏览器,HTML 引擎不会将该字符串识别为任何内容的有效 URL。
您需要将url_for()
函数放在{{ ... }}
括号中,而不仅仅是任务 id 值:
href="{{ url_for('view_task', task_id=task['id']) }}"
只有 thenurl_for()
实际上被视为 Jinja2 执行的表达式,此时 HTML 生成的将包含该href="http://localhost:5000/view_task/<some id>"
字符串。
推荐阅读
- java - 为什么 List.contains(Object) 的行为不同?
- r - 如何在同一个数据帧上做colsum和average
- powerbi - 使用 DAX 生成日期系列
- javascript - 仅在服务器上需要一个包
- java - Intellij IDEA 仅针对所有未提交的更改运行测试
- regex - 在换行符之前匹配字符,不包括空格?
- macos - MacOS - 使用带有launchd的脚本 - 启动,登录,注销,关闭?
- service-worker - Workbox 的服务人员在更改时未更新
- python - AllenNLP 共指分辨率的多 GPU 训练
- reactjs - 事件处理程序中带有 [name] 的 PrevState