📜  Flask HTTP方法

📅  最后修改于: 2021-01-02 04:26:15             🧑  作者: Mango

Flask HTTP方法

HTTP是超文本传输协议,被认为是互联网上数据传输的基础。包括flask在内的所有Web框架都需要提供几种HTTP方法来进行数据通信。

下表中给出了这些方法。

SN Method Description
1 GET It is the most common method which can be used to send data in the unencrypted form to the server.
2 HEAD It is similar to the GET but used without the response body.
3 POST It is used to send the form data to the server. The server does not cache the data transmitted using the post method.
4 PUT It is used to replace all the current representation of the target resource with the uploaded content.
5 DELETE It is used to delete all the current representation of the target resource specified in the URL.

我们可以在Flask类的route()函数中指定用于处理请求的HTTP方法。默认情况下,请求由GET()方法处理。

开机自检方法

要在服务器上处理POST请求,首先让我们创建一个表单,从用户那里获取一些客户端数据,然后,我们将尝试使用POST请求在服务器上访问此数据。

login.html


   
      
Name
Password

现在,将以下代码输入到名为post_example.py的脚本中。

post_example.py

from flask import *
app = Flask(__name__)
 
@app.route('/login',methods = ['POST'])
def login():
      uname=request.form['uname']
      passwrd=request.form['pass']
      if uname=="ayush" and passwrd=="google":
          return "Welcome %s" %uname
 
if __name__ == '__main__':
   app.run(debug = True)

现在,通过使用Python post_exmple.py运行脚本来启动开发服务器,并在Web浏览器上打开login.html,如下图所示。

提供所需的输入,然后单击Submit,我们将得到以下结果。

因此,通过使用post方法将表单数据发送到开发服务器。

GET方法

让我们考虑一下Get方法的相同示例。但是,服务器端的数据检索语法有所变化。首先,将表单创建为login.html。

login.html


   
      
Name
Password

现在,将以下Python脚本创建为get_example.py。

get_example.py

from flask import *
app = Flask(__name__)
 
 
@app.route('/login',methods = ['GET'])
def login():
      uname=request.args.get('uname')
      passwrd=request.args.get('pass')
      if uname=="ayush" and passwrd=="google":
          return "Welcome %s" %uname
 
if __name__ == '__main__':
   app.run(debug = True)

现在,在Web浏览器上打开HTML文件login.html并提供所需的输入。

现在,单击提交按钮。

因为我们可以检查结果。使用get()方法发送的数据在开发服务器上检索。

通过使用以下代码行可以获取数据。

uname = request.args.get('uname')

在这里,args是一个字典对象,其中包含表单参数对及其相应值对的列表。

在上图中,我们还可以检查URL,其中也包含与请求一起发送到服务器的数据。这是GET请求和POST请求之间的重要区别,因为发送到服务器的数据未显示在POST请求的浏览器的URL中。