關於flask登錄視圖報錯AttributeError: '_AppCtxGlobals' object has no attribute 'user'


在一個小程序中寫了一個登錄視圖函數,代碼如下:

@app.route('/login',methods = ['GET','POST'])
@oid.loginhandler
def login():
    if g.user is not None and g.user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        session['remember_me'] = form.remember_me.data
        return oid.try_login(form.openid.data,ask_for=['nickname','email'])
    return  render_template('login.html',
                            title = 'Sign In',
                            form = form,
                            providers = app.config['OPENID_PROVIDERS'])

但是在登錄測試的時候報錯,報錯信息:AttributeError: '_AppCtxGlobals' object has no attribute 'user'

經過反復檢查,發現是在運行登錄視圖函數的時候沒有確定g的位置,需要添加一個裝飾函數

@app.before_request
def before_request():
    g.user = current_user

記得在你的模塊開頭導入  current_user

希望幫助到那些被同樣問題困擾的人。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM