📅  最后修改于: 2021-01-02 04:26:15             🧑  作者: Mango
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
现在,将以下代码输入到名为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方法的相同示例。但是,服务器端的数据检索语法有所变化。首先,将表单创建为login.html。
login.html
现在,将以下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中。