我怎样才能从一个路由函数传递一个字典到另一个函数呢?

24 浏览
0 Comments

我怎样才能从一个路由函数传递一个字典到另一个函数呢?

我是Python/Flask的新手。我需要将在名为“cmz”的函数中的字典“dict”传递给“form”函数,以便调用一个HTML模板并将同样的字典传递给页面。\n我陷入了困境,因为当我运行它时,我只得到一个字符串值,而不是一个对象。\n我尝试在“form”函数的参数“params”之前设置“**”,但对我没有起作用。\n这是我的代码,谢谢任何建议!\n

@app.route('/form')
def form(params):
    return render_template('index.html', result = params)
@app.route('/page/')
def cmz(distrib):
    if distrib == "cmz":
        dict = {'aaa' : 'bbb', 'ccc' : 'ddd'}
        return redirect(url_for('form', params = dict))

0
0 Comments

问题:如何从一个路由函数将字典传递给另一个路由函数?

原因:在Flask中,每次请求都是独立的,无法直接在不同的路由函数之间共享数据。所以需要一种方法来在路由函数之间传递字典。

解决方法:可以使用session来实现。首先需要导入session模块,并确保设置了一个秘钥。然后可以将字典添加到session中,在另一个路由函数中可以通过反向操作来获取字典。

代码示例:

from flask import session
# 设置秘钥
app.secret_key = 'a random string'
# 在一个路由函数中添加字典到session
dict = {'aaa' : 'bbb', 'ccc' : 'ddd'}
session['dict'] = dict
# 在另一个路由函数中获取字典
dict = session['dict']

使用session的方法可以解决这个问题,并且可以实现在不同路由函数之间共享数据的目标。如果这个方法不能解决你的问题,请告诉我,我会很乐意帮助你!还有另外一种使用Json的方法也可以实现类似的功能。现在我只需要更深入地阅读它们的文档,以更好地理解它们的工作原理。非常感谢!

0
0 Comments

如何从一个路由函数传递一个字典到另一个函数?

有时候我们需要在一个路由函数中创建一个字典,并将它传递给另一个函数。但是,直接将字典作为参数传递可能会导致一些问题。那么我们应该如何解决这个问题呢?

一个解决方法是将字典转换成字符串形式(例如"{1:2,2:3}"),然后再将其转换回字典形式。

幸运的是,已经有人提出了这个问题,并给出了一个很好的答案。你可以在这里找到详细的解答。

其中最简单的方法如下:

import json
json.dumps()

这两种解决方案都可以很好地工作!JSON和Session方法以不同的方式实现了目标,但都非常好用!现在我只需要深入阅读它们的工作原理,以便更好地理解。非常感谢!

0