[英]flask Indentation errors for returns
我的燒瓶應用程序始終出現縮進問題。
特別是當我嘗試在return語句之前聲明變量時。 同樣,當我嘗試在return語句之前使用session['logged_in] = True
。
試圖尋找任何跡象表明我在構造錯誤,我想念什么?
from app import app
from flask import render_template, url_for, request, url_for, redirect, session
from form import NewUser
@app.route('/')
def home():
return render_template('home.html')
@app.route('/logout')
def logout():
session.pop('logged_in', None)
redirect(url_for('home'))
@app.route('/login', methods=['POST', 'GET'])
def login():
form = NewUser()
if request.method == 'POST':
if request.form['username'] != 'admin' and request.form['password'] != 'password':
error = "uername/password incorrect"
return render_template('login.html', form=form, error=error)
else:
session['logged_in'] = True
return redirect(url_for('secretarea'))
return render_template('login.html', form=form, error=error)
@app.route('/secretarea')
def secretarea():
if session['logged_in'] = True:
return "this area is a secret"
else:
error="please log in"
return render_template('login.html', error=error)
我得到的錯誤是這個
File "runserver.py", line 2, in <module>
from app import app
File "/home/roman/flask/myblog/app/__init__.py", line 9, in <module>
from app import views
File "/home/roman/flask/myblog/app/views.py", line 21
return render_template('login.html', form=form, error=error)
^
IndentationError: unexpected indent
您的登錄視圖結構不正確。 在最后一個返回行中,您嘗試傳遞在if條件中定義的'error'變量。 另外,您無需兩次返回login.html模板。 我將視圖重新排列為:
@app.route('/login', methods=['POST', 'GET'])
def login():
form = NewUser()
error='' # initialize the error variable outside the if loop
if request.method == 'POST':
if request.form['username'] != 'admin' and request.form['password'] != 'password':
error = "uername/password incorrect"
else:
session['logged_in'] = True
return redirect(url_for('secretarea'))
# This line will execute if GET request OR the username/password checks fails
return render_template('login.html', form=form, error=error)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.