flacon : comment faire pour récupérer les données de session?
Je suis assez nouveau web python-dev, j'ai flacon+wtforms application. Je peux voir dans login()
objet utilisateur stocké comme
if user:
if user.verify_password(form.password.data):
flash('You have been logged in')
user.logins += 1
db.session.add(History(user.uid))
db.session.commit()
session['user'] = user
Maintenant, je voulais récupérer l'utilisateur
if 'user' in session:
User=session.get('user')
print User.nickname ###<< how to retrieve specific object member?
Il échoue avec un message du genre :
Instance <User at 0x8e5a64c> is not bound to a Session; attribute refresh operation cannot proceed
OriginalL'auteur webminal.org | 2013-03-23
Vous devez vous connecter pour publier un commentaire.
C'est simple. Si vous souhaitez récupérer un objet spécifique ajoutez simplement le nom de la variable dans la session, par exemple
session['nickname']
.Vous pouvez définir la variable de la même façon, en faisant
session['nickname'] = nickname
.Dans votre cas, vous devez modifier suivantes
C'est une version simplifiée de la fonction que j'ai utiliser pour la connexion.
Merci beaucoup,l'avez. Utilisé votre première méthode. Ne pas se soucier des objets et des choses comme ça. Stocké le surnom de variable de session plutôt que de l'objet. Merci pour l'aide.
Pas de soucis. btw, pour des raisons de sécurité, il est préférable de stocker le moins d'informations dans la session possible. Je stocke toutes mes autorisations etc dans une base de données.
l'application utilise mysql, je n'ai pas beaucoup de données stockées session. Juste maintenant essayer de ré-utilisation de la session..afin d'ajouter un nouvel utilisateur-page modifier le profil dans le site web.
Notez également que les cookies de session ont une limite de taille de 4 ko - dessus et la session obtient nus, ce qui peut entraîner une certaine confusion des bugs!
OriginalL'auteur eandersson