python - Flask - 直接在 session 中存储对象

标签 python json object serialization flask

<分区>

我想知道是否可以将对象直接存储在 Flask session 中,而无需重写序列化程序。我需要在类里面实现任何功能才能使其正常工作吗? 下面的示例代码。这就是我想要的样子。但是,当您尝试执行它时,它会抛出错误 TypeError: Object of type 'Test' is not JSON serializable

非常感谢任何帮助!提前致谢! :)

import flask
from flask import Flask, session, redirect

class Test:
    def __init__(self, x, y, z):
    self.x = x
    self.y = y
    self.z = z

app = Flask(__name__)
app.secret_key = 'xyz'

@app.route('/')
def main():
    session['my_object'] = Test(1, 2, 3)
    return redirect('retrieve')

@app.route('/retrieve')
def return_my_object():
    my_object = session.get('my_object')
    return str(my_object)

if __name__ == '__main__':
    app.run(debug=True)

最佳答案

使对象序列化并实现所需目标的一种简单方法是像这样使用 __dict__:

def main():
    session['my_object'] = Test(1, 2, 3).__dict__
    return redirect('retrieve')

关于python - Flask - 直接在 session 中存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45567704/

相关文章:

python - Keras Predict_proba 中的神经网络始终返回等于 1 的概率

JavaScript。为什么创建新对象时会覆盖私有(private)函数?

php - 如何在没有 key 的情况下解码 JSON 值?

json - 具有/JSON正文的Powershell Invoke-Webrequest-无法反序列化吗?

php - 将数组定义为类的属性时出现语法错误

c++ - 从函数返回一个包含另一个对象的对象

python - python强制创建新的内存对象

python - 拆分大量字符串并创建结果列表

python - 在mac 10.8.3上安装lxml

javascript - Axios 使用 React 自动刷新