【Python Flask实战】获取HTTP请求数据 r囧r小猫 2022-11-14 00:57 263阅读 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请求数据。 from flask import Flask from flask import request app = Flask(__name__) # 根路由,用来读取HTTP请求头数据 @app.route('/') def index(): # 读取HTTP请求头的User-Agent字段值 user_agent = request.headers.get('User-Agent') return '<h1>Your browser is %s</h1>' % user_agent # 用于读取GET请求数据的路由 @app.route('/abc') def abc(): # 读取GET请求中的arg字段值 value = request.args.get('arg') return '<h1>arg = %s</h1>' % value if __name__ == '__main__': app.run() 运行程序,然后在浏览器地址栏中输入如下的Url。 http://localhost:5000 访问上面的Url后,会在浏览器中输出如图1所示的信息。要注意的是,这个输出信息会根据读者使用的浏览器不同而有所差异。但都会描述了读者使用的浏览器类型。例如,本例使用Chrome浏览器进行测试,所以输出信息会出现Chrome以及对应的版本号。 ![cfffae529806158e35cd05c2152a6b9b.png][] 图1 返回浏览器类型 接下来在浏览器地址栏输入如下的Url。 http://localhost:5000/abc?arg=hello 会在浏览器中输出如图2所示的内容。 ![677f8269741f15b6f2c81993c3284758.png][] 图2 返回GET请求参数值 \- EOF - 推荐阅读 点击标题可跳转 [【视频版】Python远程控制交通信号灯-物联网最佳实践][Python_-] [卧槽,好强大的魔法,竟能让Python支持方法重载][Python] [Python装饰器(decorator)不过如此,是我想多了][Python_decorator] [这样合并Python字典,可以让程序的运行效率提高4倍][Python_4] [Python字典不是不可以排序,是你方法没用对!][Python 1] [文件侠告诉你,Python复制文件的N种姿势!][Python_N] [Python代码可以加密吗?Python字节码告诉你!][Python_Python] [使出Python的六脉神剑,让Python拥有无限扩展性][Python_Python 1] [看我用元类(metaclass)花式创建Python类][metaclass_Python] [你不知道\_\_name\_\_变量是什么意思吗?][name] [Python生成器(Generator)最完美解释][Python_Generator] 关注「极客起源」公众号,加星标,不错过精彩技术干货 ![5fa83e97407ac1c13d5ae7a7e7a07c8d.png][] [cfffae529806158e35cd05c2152a6b9b.png]: /images/20221022/261f1fc3331241c8b976a325d0b369da.png [677f8269741f15b6f2c81993c3284758.png]: /images/20221022/ee0823018b81467298052fd69894c5d2.png [Python_-]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693c8d8a1eb59bc944d68e09af624733b44434749de92d41816b2b5a2a338e201cc46b97e1&idx=1&mid=2651366011&scene=21&sn=e9632d5cc08ab68630aed7ce87de189a#wechat_redirect [Python]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693f3b8a1eb62d3c68093e7bbc4664c877b9a1d561eae2fe28cc15b5ff97897578d43e3b65&idx=1&mid=2651365837&scene=21&sn=a50df8971721c4298579d98aa7db0011#wechat_redirect [Python_decorator]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693f568a1eb6400427ed936f0ba73feb70ef139da1a650529ac1d0606a69bee9aeaa6f5547&idx=1&mid=2651365792&scene=21&sn=9d969fea7030c5b6ffca79461be88ffd#wechat_redirect [Python_4]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693f948a1eb682cbbd11beac44afb562f92716142b61b286a95d44247fb0d421f062396460&idx=1&mid=2651365730&scene=21&sn=4ef4ab8e3f0dff7fa79fe8fffec0f088#wechat_redirect [Python 1]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693f988a1eb68e3125393946e6050d9224c497324a082998ffd35f1876fe5f864d0b335b2e&idx=1&mid=2651365742&scene=21&sn=8d79163bb7b2d1b1a2132d10dbe75245#wechat_redirect [Python_N]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693fb88a1eb6ae7b88f6943e7852693856ec5d94e0ae365ef3b4ba2dfd3c8df9e05c75eb2e&idx=1&mid=2651365710&scene=21&sn=fee949a85ccf358ee151f582e4a110a2#wechat_redirect [Python_Python]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693fb68a1eb6a02a55a3387e881009abbffa24d3f128fee9715ee7d1184378fe816699a3b1&idx=1&mid=2651365696&scene=21&sn=b3e8106e2a5b49ed8a36014a89b814be#wechat_redirect [Python_Python 1]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693e4e8a1eb7587daf3d596210cd7ebb9abc53253da2757798a8232cea7c4e40b2caec5de4&idx=1&mid=2651365560&scene=21&sn=dfa01f756026cd4783f78289f47908e3#wechat_redirect [metaclass_Python]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693e518a1eb747ba5bfb1c95b7734ba6f003a3629c904e929265a28e2b7379064e05f4a59b&idx=1&mid=2651365543&scene=21&sn=49d128105f9cf0e60e6f29d37f4042db#wechat_redirect [name]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693e6d8a1eb77b7ea2c3dd5bc34365f6f16a9e311b171777275faf91ed355e73e4ce080580&idx=1&mid=2651365531&scene=21&sn=b13ae5e0b8b6513eb2b9ea37d7941643#wechat_redirect [Python_Generator]: http://mp.weixin.qq.com/s?__biz=MjM5MzU1NzQwMQ%3D%3D&chksm=bd693e748a1eb762e07dcf354ac469e727e305d62b33647c833480ca09e407fec913ef4820c7&idx=1&mid=2651365506&scene=21&sn=7a8f298b48bec412b279188e9033853e#wechat_redirect [5fa83e97407ac1c13d5ae7a7e7a07c8d.png]: /images/20221022/965f2b48bb284ea6977068f4091d0ba6.png
还没有评论,来说两句吧...