Сеанс передается в другой файл с помощью 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

Кто-нибудь может указать мне, что мне здесь не хватает?

Спасибо заранее.

0 ответов

Другие вопросы по тегам