Flask-请求上下文

来源:互联网 发布:unity3d 工业仿真 编辑:程序博客网 时间:2024/06/05 00:21

方式一

request-context.py

from flask import Flaskfrom flask import requestfrom flask import render_templateapp = 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,redirectfrom wtforms import Form,TextField,PasswordField,validatorsapp = 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首页

这里写图片描述

原创粉丝点击