【发布时间】:2020-01-10 11:00:59
【问题描述】:
我是 Python/Flask 的新手。我需要将名为“dict”的“cmz”函数中的字典传递给“form”函数,以便调用html模板并将相同的字典传递给页面。 我被卡住了,因为当我运行它时,我只得到一个字符串值而不是一个对象。
我试图在“form”函数的参数“params”之前设置'**',但它对我不起作用。
这是我的代码,感谢任何人的建议!
@app.route('/form<params>')
def form(params):
return render_template('index.html', result = params)
@app.route('/page/<distrib>')
def cmz(distrib):
if distrib == "cmz":
dict = {'aaa' : 'bbb', 'ccc' : 'ddd'}
return redirect(url_for('form', params = dict))
【问题讨论】:
-
一个 URL 本质上只能将 strings 传递到后端。 Flask 确实允许您指定参数可以是整数或浮点数,因为这些是常见的用例并且实现起来并不复杂 - 但是如果不以某种方式将其序列化,您就不能在 URL 中传递像 dict 这样的复杂对象.这绝对是可行的,但我很好奇你为什么需要这样做,因为我无法想象一个用例。 (例如,如果数据来自您的数据库,那么只需在您的 URL 中传递行 ID,并在适当的视图中使用它从数据库中提取信息。)