Flask请求方法(三)
HTTTP的协议是基于应用层的协议,不需要刻意的去关注网络传输层的协议,它主要用于
客户端与服务端之间的通信方式。在HTTP协议中,常用的请求方法主要是GET,POST,PUT,
DELETE的请求方法。在HTTP协议中,客户端向服务端发送请求的时候,需要带上对应的请求
方法,服务端接收到请求方法后,然后把响应内容返回给客户端。
GET请求方法:
GET请求方法主要用来获取对应的资源,GET请求方法用来请求已被URL识别的资源,客户端
发送GET请求方法后,服务器接收到对应的资源进行解析后,然后把响应内容返回给客户端。客
户端发送GET请求的时候,获取的资源可以是文本,也可以是图片和影评。如下图客户端与服务
端GET请求方法的通信过程。
POST请求方法:
虽然使用GET请求方法客户端与服务器之间进行通信,但是GET请求方法主要应用于客户端向
服务器获取指定的资源,但是如果客户端与服务器之间涉及数据的传输,GET请求方法并一个好的
选择请求方法,比如系统的登录,前端把用户名输入的账号和密码传输给后台后,后台需要获取到
传输过来的数据并且对用户名和密码处理后,需要告诉客户端登录系统的情况。这个时候使用的方
法是POST,POST请求方法主要用来传输实体的主体。如下图的请求过程。
下面终点来看Flask对HTTP请求方法的处理,这里以一个简单的登录案例为主,见HTML的源码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <center> <form action="{{ url_for('login') }}" method="post"> <p>用户名:<input type="text" name="username" placeholder="请输入账号"></p> <p>密码:<input type="password" name="password" placeholder="请输入账号密码"></p> <p><input type="submit" value="提交"></p> </form> </center> </body> </html>
见Flask程序的代码:
from flask import Flask,request,render_template app = Flask(__name__) app.config.from_pyfile('config.py',silent=True) @app.route('/login/',methods=['GET','POST']) def login(): content={'msg':None} if request.method=='GET': return render_template('login.html') if request.method=='POST': username=request.form.get('username',None) password=request.form.get('password',None) if username=='wuya' and password=='admin': return '登录成功' if __name__ == '__main__': app.run()
这样在如上的案例源码中,程序代码考虑到了GET请求方法和POST的请求方法,并且在后台做了判断和处理。
欢迎关注微信公众号“Python自动化测试”