概要
タイトル通り。備忘録。最近の書き出しはいつもコレですね。
問題のあるコード
@app.before_request
def before_request():
#Not login yet
if 'user' not in session and request.endpoint not in ('login')
return redirect(url_for('login'))
#Already login
return
原因
login.html内でリクエストしているstatic以下のファイル(cssとかjsとか画像とか)もbefore_request()内の検査にかけられ、それに引っかかることでlogin.htmlへのリダイレクトが発生している。
方法
こう書く。
@app.before_request
def before_request():
#Not login yet
#Don't exclude static directory
if 'user' not in session and request.endpoint not in ('login', 'static'):
return redirect(url_for('login'))
#Already login
return
これによりstatic以下のファイルを引っ張ってくるときにリダイレクトされずに済む。
参考記事(stackoverflow)
python flask before_request exclude /static directory
What is an ‘endpoint’ in Flask?