Sessionvariable ändert den type nach redirect?

Django, Flask, Bottle, WSGI, CGI…
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

irgendwie ändert sich nach einem redirect der type von meiner session-Variable, was ich mir nicht erklären kann.

Code: Alles auswählen


@app.route("/addtrainingdate", methods=['get', 'post'])
def addtrainingdate():
    form = TrainingDate()

    if request.method == 'POST':
        if form.validate_on_submit():
            print(form.training_date.data)
            session['train_date'] = form.training_date.data
            print(type(session.get('train_date')))
            return redirect(url_for('addtrainingdetails'))
            

@app.route("/addtrainingdetails", methods=['get', 'post'])
def addtrainingdetails():
    if request.method == 'GET':
        if 'train_date' in session:
            print('--- flag01 ---')
            print(type(session.get('train_date')))
            date = session.get('train_date')
            print(date)



OUTPUT:

Code: Alles auswählen

2021-03-30
<class 'datetime.date'>
--- flag01 ---
<class 'str'>
Tue, 30 Mar 2021 00:00:00 GMT

Warum ändert sich der type von datetime.date zu str?
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie werden deine Session Daten gespeichert? Nicht jedes Speicherformat unterstützt alle Datentypen. Json kennt z.b. nur Zahlen und Strings.
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Sirius3 hat geschrieben: Samstag 27. März 2021, 10:52 Wie werden deine Session Daten gespeichert? Nicht jedes Speicherformat unterstützt alle Datentypen. Json kennt z.b. nur Zahlen und Strings.
Ganz normal über

Code: Alles auswählen

from flask import session
Aber dann schaue ich da mal in die docs. Danke.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten