我正在尝试学习python和一些python web框架。目前我正在遵循一个烧瓶课程,但遇到了一个html表单的问题,我找不到解决方案。在
下面的代码应该在“/”处创建一个非常简单的页面,用户可以使用html表单登录,并在成功登录后重定向到/main。在
但是,页面没有显示html表单,而是立即重定向到/main。在
至少部分问题似乎是request.method返回的是GET,而不是{},因为当我添加flash(request.method)时,GET会返回。在
我已经检查了多次代码,它与我下面的教程完全相同,但是结果不一样。在
我使用的是python3.5,我相信Flask版本是0.10.1。在
这是我的主要python文件:from flask import Flask, render_template, request, session, \
flash, redirect, url_for, g
import sqlite3
# configuration
DATABASE = 'blog.db'
USERNAME = 'admin'
PASSWORD = 'admin'
SECRET_KEY = 'hard_to_guess'
app = Flask(__name__)
# pulls in app configuration by looking for UPPERCASE variables
app.config.from_object(__name__)
# function used for connecting to the database
def connect_db():
return sqlite3.connect(app.config['DATABASE'])
@app.route('/', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != app.config['USERNAME'] or\
request.form['password'] != app.config['PASSWORD']:
error = 'Invalid credentials. Please try again.'
else:
session['logged_in'] = True
return redirect(url_for('main'))
return render_template('login.html', error=error)
@app.route('/main')
def main():
return render_template('main.html')
@app.route('/logout')
def logout():
session.pop('logged_in', None)
flash('You were logged out')
return redirect(url_for('login'))
if __name__ == '__main__':
app.run(debug=True)
下面是login.html代码:
^{pr2}$
如有任何帮助或建议,我们将不胜感激。在