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首页
阅读全文
0 0
- Flask-请求上下文
- Flask: 程序和请求上下文
- Flask-应用(程序)上下文和请求上下文
- Flask源码解读 <2> --- 请求上下文和request对象
- Flask进阶(一)——请求上下文和应用上下文完全解答(上)
- Flask进阶(一)——请求上下文和应用上下文完全解答(下)
- Flask 上下文处理器
- flask 上下文全局变量
- Flask的Context(上下文)
- Flask学习笔记---上下文
- 应用上下文&请求上下文
- 请求上下文
- 深入理解Flask中的上下文
- Flask上下文机制的理解
- flask中的上下文处理器app_context_processor
- flask接收post请求
- flask关于请求方法
- flask请求数据
- 防火墙策略_iptables
- hdu 3208 Integer’s Power(容斥原理)
- 页面之间数据传递,页面跳转,JSP,JS
- zcmu1670 和费马开个玩笑
- Cmake 入门
- Flask-请求上下文
- 博客中的 markdown 的显示问题
- 【JZOJ 5295】【清华集训2017模拟】Create
- Hdu 1232 畅通工程 (并查集水题)
- 使用c++11标准库转换字符编码
- 根据数组中某个两个值作为键、并把数组中同时存在该两个字段值的数组值累加、组合成二维数组
- 动态规划的一些总结
- Apache Shiro源码 拦截器过程
- 学习一个FFT