I have flask+wtforms application. I can see in login() user object stored as
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
Now I wanted to retrieve the user
if 'user' in session: User=session.get('user') print User.nickname ###<< how to retrieve specific object member?
It fails with message like :
Instance <User at 0x8e5a64c> is not bound to a Session; attribute refresh operation cannot proceed
It's simple. If you want to retrieve a specific object simply add the name of the variable within session, e.g.
You can set the variable the same way, by doing
session['nickname'] = nickname.
In your case you would change it to the following
if 'user' in session: user = session['user'] print user if 'nickname' in session: nickname = session['nickname'] print nickname
This is an simplified version of the function I use for login.
@app.route('/login', methods=['POST']) def login(): """Authenticate User""" username = request.form['username'].strip() nickname = request.form['nickname'].strip() password = request.form['password'] try: if Auth().VerifyLogin(username, password): session['username'] = username session['nickname'] = nickname else: # failed to login, do something. except Exception as why: app.logger.critical('.....')