I was wondering if it is possible to store an object directly in a Flask session, without the need to rewrite the serializer. Are there any functions I need to implement in my class in order to get this working?
Sample code that is below. This is what I want it to look like. However, when you try to execute that it throws an error à la TypeError: Object of type 'Test' is not JSON serializable
Any help is greatly appreciated! Thanks in advance! :)
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)
A simple way to make your object serialize and achieve what you want is to use __dict__
like so:
def main():
session['my_object'] = Test(1, 2, 3).__dict__
return redirect('retrieve')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With