如何将字典从路线功能传递给另一个功能?

时间:2019-09-08 10:30:47

标签: python flask

我是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))

2 个答案:

答案 0 :(得分:1)

您可以以字符串形式(例如"{1:2,2:3}")传递字典,然后将其转换回去。 幸运的是,有关如何执行此操作的问题已经得到广泛解答-Convert a python dict to a string and back

最简单的方法如下:

import json
json.dumps()

答案 1 :(得分:0)

这可以通过使用会话来完成。

您需要使用导入

from flask import session

您还需要确保通过使用设置了密钥

app.secret_key = 'a random string'

之后,您可以使用以下方式在会话中添加字典

dict = {'aaa' : 'bbb', 'ccc' : 'ddd'}
session['dict'] = dict

在另一条路线中,您可以通过反转该行来检索字典

dict = session['dict']

如果这不能解决您的问题,请告诉我,我们将很乐意为您提供帮助!