关于python:Flask – 直接在会话中存储对象

Flask - store object directly in a session

本问题已经有最佳答案,请猛点这里访问。

我想知道是否可以在烧瓶会话中直接存储对象,而不需要重写序列化程序。在我的类中是否需要实现一些函数以使其正常工作?下面的示例代码。这就是我想要的样子。但是,当您尝试执行时,它会抛出一个错误"laEDOCX1"(0)

非常感谢您的帮助!事先谢谢!:)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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__,如下所示:

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