Сеанс передается в другой файл с помощью zeep и flask
У меня проблема с передачей сеанса с одной из моих страниц фляги на другую.
Начиная с auth.py у меня есть следующий код:
@bp.route('/login', methods=('GET','POST'))
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
soap_client = SOAPClient()
error = None
try:
client_session = soap_client.client.service.login(username, password, 3600)
except zeep.exceptions.Fault as login_error:
error = str(login_error)
if error is None:
session.clear()
session['user_name'] = username
session['client_session'] = client_session
return redirect(url_for('index'))
flash(error)
return render_template('auth/login.html')
Который, на мой взгляд, должен хранить информацию о том, что пользователь вошел в переменную session['client_session'].
Затем я хотел бы напечатать некоторые данные пользователю, если он вошел в систему, поэтому я написал что-то вроде этого в index.py:
@bp.route('/', methods=('GET','POST'))
def index():
if session:
soap_client = SOAPClient()
reseller_details = soap_client.client.service.getClients([])
return render_template('index.html', reseller_details=reseller_details)
К настоящему времени не имеет значения, что я передаю пустой список в качестве параметров, который работает для этого метода. Вместо этих деталей я получаю сообщение об ошибке zeep.exceptions.Fault, которое говорит:
zeep.exceptions.Fault: Требуется авторизация!
Мой SOAPClient реализован следующим образом:
class SOAPClient:
def __init__(self):
session = Session()
session.verify = False
transport = Transport(session=session)
settings = Settings(strict=True, xml_huge_tree=True)
self.client = Client(MY_SERVER_ADDRESS, settings = settings,
transport = transport )
В области /login все работает нормально, так что я думаю, это как-то связано с передачей переменной soap_client или client_session вокруг приложения фляги. Передача soap_client вызывает ошибку TypeError, однако:
TypeError: <flaskr.SOAPClient.SOAPClient object at 0x7f8bef5be828> is not JSON serializable
Кто-нибудь может указать мне, что мне здесь не хватает?
Спасибо заранее.