如何在Flask中使用url_for中的变量?

时间:2014-03-23 23:04:55

标签: python web flask

所以,我正在使用Flask创建一种待办事项列表,并且我正在解决问题。

当您单击所需的任务类型时,我的一个主页面会执行此操作

          <a href={{url_for('add_task_type', task_type=type)}}>{{task_types[type]}}</a>

此转发,

http://127.0.0.1:5000/add_task_type?task_type=1

这应该会发送给您:

@app.route('/add_task_type', methods=['GET', 'POST'])
def add_task_type():
    all_tasks = Task.query.all()
    number = len(all_tasks)
    task_db = Task(id = number, type=task_type, creator = 235026, time=20)
    db.session.add(task_db)
    db.session.commit()
    return redirect('/index')

但我收到了一个N​​ameError:全局名称&#39; task_type&#39;没有定义。为什么没有定义类型?它不在URL中吗?这是将变量传递给其他页面的错误方法吗?

1 个答案:

答案 0 :(得分:3)

根据你的网址:

http://127.0.0.1:5000/add_task_type?task_type=1

task_typeGET参数,request位于add_task_type, 您可以在request.args.get("task_type") 视图中使用以下方式访问它:

add_task_type

from flask import request def add_task_type(): ... task_type = request.args.get("task_type") task_db = Task(id = number, type=task_type, creator = 235026, time=20) ... 视图更改为:

{{1}}