方式一
request-context.py
from flask import Flask
from flask import request
from flask import render_template
app = Flask(__name__)
@app.route('/login',methods =['POST','GET'])
# def login():
# username = None
# password = None
# if request.method == 'POST':
# username = request.form['username']
# password = request.form['password']
# else:
#也可以用request.args.get('username')
# username = request.args['username']
# return render_template('login.html')
def login():
error = None
username = None
if request.method == 'POST':
if valid_login(request.form['username'],
request.form['password']):
return log_the_user_in(request.form['username'])
else:
#也可以用request.args.get('username')
username = request.args['username']
# error = 'Invalid username/password'
# 当请求形式为“GET”或者认证失败则执行以下代码
return render_template('login.html', error=error)
if __name__ == '__main__':
app.run(debug = True)
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>HTTP 方法:{{method}}</h1>
<form method="get">
<div>
<input type="text"
name = "username"
placeholder="User name"/>
</div>
<div>
<input type="password"
name ="password"
placeholder="Password"/>
</div>
<input type="submit">
</form>
</body>
</html>
方式二
WTForm方式
request-context1.py
from flask import Flask,request,render_template,redirect
from wtforms import Form,TextField,PasswordField,validators
app = Flask(__name__)
class LoginForm(Form):
username = TextField("username",[validators.Required()])
password = PasswordField("password",[validators.Required()])
@app.route("/user",methods=['GET','POST'])
def login():
myForm = LoginForm(request.form)
if request.method =='POST':
if myForm.username.data =="user" and myForm.password.data=="password" and myForm.validate():
return redirect("http://www.baidu.com")
else:
message = "Failed Login"
return render_template('login1.html',message=message,form=myForm)
return render_template('login1.html',form=myForm)
if __name__ == '__main__':
app.run(debug=True)
login1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div align="center">
<h2>User Management</h2>
{% if message %} {{message}} {% endif %}
<form method="POST">
username:{{form.username}}
<br>
password:{{form.password}}
<br>
<input type="submit" value="Submit">
<input type="reset" value="reset">
</form>
</div>
</body>
</html>
运行代码,浏览器输入http://127.0.0.1:5000/user
输入用户名user
,密码password
后,将进行跳转到baidu首页