Flask-请求上下文

方式一

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首页

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值