Flask请求方法(三)

2019-12-10 16:38:23 浏览数 (1)

HTTTP的协议是基于应用层的协议,不需要刻意的去关注网络传输层的协议,它主要用于客户端与服务端之间的通信方式。在HTTP协议中,常用的请求方法主要是GET,POST,PUT,DELETE的请求方法。在HTTP协议中,客户端向服务端发送请求的时候,需要带上对应的请求方法,服务端接收到请求方法后,然后把响应内容返回给客户端。

GET请求方法主要用来获取对应的资源,GET请求方法用来请求已被URL识别的资源,客户端发送GET请求方法后,服务器接收到对应的资源进行解析后,然后把响应内容返回给客户端。客户端发送GET请求的时候,获取的资源可以是文本,也可以是图片和影评。如下图客户端与服务端GET请求方法的通信过程。

虽然使用GET请求方法客户端与服务器之间进行通信,但是GET请求方法主要应用于客户端向服务器获取指定的资源,但是如果客户端与服务器之间涉及数据的传输,GET请求方法并一个好的选择请求方法,比如系统的登录,前端把用户名输入的账号和密码传输给后台后,后台需要获取到传输过来的数据并且对用户名和密码处理后,需要告诉客户端登录系统的情况。这个时候使用的方法是POST,POST请求方法主要用来传输实体的主体。如下图的请求过程。

下面终点来看Flask对HTTP请求方法的处理,这里以一个简单的登录案例为主,见HTML的源码:

代码语言:javascript复制
<!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程序的代码:

代码语言:javascript复制
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()

谢谢您的阅读与关注!

0 人点赞