2016-10-17 8 views
-1

私はFlask Web Developmentの本を読んでいます。 IPを使用してインデックスページにアクセスできます。 しかし、ログインボタン(インフォメーションを記入したり、アカウントを登録できるページ)をクリックしようとしたとき 以下のようにアラームが発生しました。 私はそれを得るのを夢中にしています...フラスコログインのレスポンスはNoneType、 であり、それに対して属性 "set_cookie" "delete_cookie"はありません。Flask + Gunicorn + Nginxが発生するAttributeError "NoneType"に属性がありません

enter image description here

アラーム情報こちらをご確認ください以下のようにルート "ログイン" のための私のviews.pyコード

enter image description here

from flask import render_template,redirect,request,url_for,flash 
from flask.ext.login import login_user,current_user 
from . import auth 
from ..models import User 
from .forms import LoginForm,RegistrationForm,ChangePasswordForm,PasswordResetRequestForm,PasswordResetForm,ChangeEmailForm 
from flask.ext.login import logout_user,login_required 
from app import db 
from ..email import send_email 

@auth.route('/login',methods=['GET','POST'])  
def login(): 
    form=LoginForm() 
    if form.validate_on_submit(): 
     user=User.query.filter_by(email=form.email.data).first() 
     if user is not None and user.verify_password(form.password.data): 
      login_user(user,form.remember_me.data) 
      return redirect(request.args.get('next')or url_for('main.index')) 
     flash('Invalid username or password.') 
    return render_template('auth/login.html',form=form) 

@auth.before_app_request 
def before_request(): 
    if current_user.is_authenticated: 
     current_user.ping() 
     if not current_user.confirmed and request.endpoint[:5] !='auth.': 
      return redirect(url_for('auth.unconfirmed')) 

これ以上の情報が必要な場合は、私にいくつかの提案をお願いします。 ありがとうございます!

答えて

0

最後に問題が見つかりました。 これは別のファイル/main/views.pyから発生したものです ファイルの最後に、応答時間をテストするための関数があり、応答オブジェクトを返しますが、行に余分なインデントを1つ追加します。 インデントを取り消した後、正常に動作します。

@main.after_app_request 
def after_request(response): 
    for query in get_debug_queries(): 
     if query.duration >= current_app.config['FLAKSY_SLOW_DB_QUERY_TIME']: 
      current_app.logger.warning('Slow query: %s\nParameters: %s\nDuration: %fs\nContext: %s\n' % 
       (query.statement, query.parameters, query.duration, 
       query.context)) 
    return response 
関連する問題