IT资讯

【Python Flask实战】获取HTTP请求数据

作者:admin 2021-04-09 我要评论

客户端通过Url访问服务端程序,会发送给服务端两类信息,一类是HTTP请求头,另外一类就是请求数据。 一般HTTP请求会通过GET方法和POST方法向服务端提交数据。因...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

 

客户端通过Url访问服务端程序,会发送给服务端两类信息,一类是HTTP请求头,另外一类就是请求数据。

一般HTTP请求会通过GET方法和POST方法向服务端提交数据。因此,服务端程序需要获得客户端的这些请求数据,然后会做进一步的处理。例如,如果服务端要想对客户端的类型(使用的什么浏览器)做一下统计,就需要获取HTTP请求头中的User-Agent字段的值。如果要得到客户端表单提交的数据,就要在服务端获取GET请求或POST请求的数据。

读取POST请求在后面的文章会详细介绍,本文先看一个如何读取HTTP请求头和GET请求的数据。在Flask中读取HTTP请求头和GET请求的数据需要导入flask模块中的一个全局变量request,然后使用request.headers.get(...)读取HTTP请求头数据。get方法的参数就是HTTP请求头字段的名称。使用request.args.get(...)读取GET请求中的某个字段的值。get方法的参数值就是GET请求的字段名称。

本例编写了两个路由,分别用来读取HTTP请求头数据和GET请求数据。

  1. from flask import Flask 
  2. from flask import request 
  3.   
  4. app = Flask(__name__) 
  5. # 根路由,用来读取HTTP请求头数据 
  6. @app.route('/'
  7. def index(): 
  8.     # 读取HTTP请求头的User-Agent字段值 
  9.     user_agent = request.headers.get('User-Agent'
  10.     return '<h1>Your browser is %s</h1>' % user_agent 
  11. # 用于读取GET请求数据的路由 
  12. @app.route('/abc'
  13. def abc(): 
  14.     # 读取GET请求中的arg字段值 
  15.     value = request.args.get('arg'
  16.     return '<h1>arg = %s</h1>' % value 
  17. if __name__ == '__main__'
  18.     app.run() 

运行程序,然后在浏览器地址栏中输入如下的Url。

  1. http://localhost:5000 

访问上面的Url后,会在浏览器中输出如图1所示的信息。要注意的是,这个输出信息会根据读者使用的浏览器不同而有所差异。但都会描述了读者使用的浏览器类型。例如,本例使用Chrome浏览器进行测试,所以输出信息会出现Chrome以及对应的版本号。

图1 返回浏览器类型

接下来在浏览器地址栏输入如下的Url。

  1. http://localhost:5000/abc?arg=hello 

会在浏览器中输出如图2所示的内容。

图2 返回GET请求参数值

本文转载自微信公众号「极客起源」,可以通过以下二维码关注。转载本文请联系极客起源公众号


本文转载自网络,原文链接:https://mp.weixin.qq.com/s/EeKQF1i04PmKJieg3ZGWDA

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 20款小众宝藏APP,工作、生活全不误,

    20款小众宝藏APP,工作、生活全不误,

  • 谷歌开发 MicroDroid,用于虚拟机的精

    谷歌开发 MicroDroid,用于虚拟机的精

  • 微信 8.0 专属红包灰度测试:可指定发

    微信 8.0 专属红包灰度测试:可指定发

  • 如何隐藏你的热更新 Bundle 文件?

    如何隐藏你的热更新 Bundle 文件?

腾讯云代理商
海外云服务器