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

r囧r小猫 2022-11-14 00:57 338阅读 0赞

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

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

  1. http://localhost:5000

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

cfffae529806158e35cd05c2152a6b9b.png

图1 返回浏览器类型

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

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

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

677f8269741f15b6f2c81993c3284758.png

图2 返回GET请求参数值

- EOF -

推荐阅读 点击标题可跳转

【视频版】Python远程控制交通信号灯-物联网最佳实践

卧槽,好强大的魔法,竟能让Python支持方法重载

Python装饰器(decorator)不过如此,是我想多了

这样合并Python字典,可以让程序的运行效率提高4倍

Python字典不是不可以排序,是你方法没用对!

文件侠告诉你,Python复制文件的N种姿势!

Python代码可以加密吗?Python字节码告诉你!

使出Python的六脉神剑,让Python拥有无限扩展性

看我用元类(metaclass)花式创建Python类

你不知道__name__变量是什么意思吗?

Python生成器(Generator)最完美解释

关注「极客起源」公众号,加星标,不错过精彩技术干货

5fa83e97407ac1c13d5ae7a7e7a07c8d.png

发表评论

表情:
评论列表 (有 0 条评论,338人围观)

还没有评论,来说两句吧...

相关阅读