python http服务flask架构实用代码详解分析
依赖库
flask安装,使用豆瓣源加速。
pip install flask -i https://pypi.douban.com/simple
gevent安装,使用豆瓣源加速。
pip install gevent -i https://pypi.douban.com/simple
代码
#!/user/bin/env python # coding=utf-8 """ @project : TestDemo @author : huyi @file : app.py @ide : PyCharm @time : 2021-10-15 11:58:44 """ from flask import Flask, request from gevent.pywsgi import WSGIServer from gevent import monkey import json # 将python标准的io方法,都替换成gevent中的同名方法,遇到io阻塞gevent自动进行协程切换 monkey.patch_all() app = Flask(__name__) # 请求返回实体 class TestResponse: def __init__( self, code, success, msg, data): self.code = code self.success = success self.msg = msg self.data = data @app.route('/progress', methods=['POST']) def progress(): request_data = json.loads(request.data) print("进度回调:{}".format(request_data)) return json.dumps( TestResponse(0, True, "progress callback success", None), default=lambda obj: obj.__dict__, sort_keys=True, indent=4) @app.route('/result', methods=['POST']) def result(): request_data = json.loads(request.data) print("结果回调:{}".format(request_data)) return json.dumps( TestResponse(0, True, "result callback success", None), default=lambda obj: obj.__dict__, sort_keys=True, indent=4) if __name__ == '__main__': print("遇事不决,可问春风。") WSGIServer(('0.0.0.0', 8383), app).serve_forever()
使用postman验证结果
总结
该代码架构简单有效,不用加过多繁重的东西。如果需要异步非阻塞接口调用的话,可以加个线程池,把执行内容扔个线程出去,一样适用。
如果本文对你有帮助,请点个赞支持一下吧。
到此这篇关于python http服务flask架构实用代码详解分析的文章就介绍到这了,更多相关python http服务内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Python Flask请求扩展与中间件相关知识总结
一.请求扩展 1.before_request 作用: 类比django中间件中的process_request,在请求到来执行路由函数之前先执行. 但是如果有多个顺序是从上往下执行. 应用: 基于它做用户登录认证 注意: 如果before_request的返回值不是None的清空下, 返回的而是别的值, 那么后续的请求都不会执行,本次请求直接返回, 如果定义了after_request那么会接着它执行, 最终本次请求响应结束. @app.before_request def process_r
-
Python_Flask 转换器的使用
目录 默认转换器自定义转换器定义方法1.创建转换器类,保存匹配时的正则表达式2.将自定义的转换器告知Flask应用3.在使用转换器的地方定义使用 默认转换器 from flask import Flask app = Flask(__name__) #/user/123 @app.route('/users/<user_id>') def get_users_data(user_id): return 'get user{}'.format(user_id) 这个123 是字符串 str fr
-
Python并发编程队列与多线程最快发送http请求方式
目录 队列+多线程 线程池 协程 + aiohttp grequests 最后的话 Python 并发编程有很多方法,多线程的标准库 threading,concurrency,协程 asyncio,当然还有 grequests 这种异步库,每一个都可以实现上述需求,下面一一用代码实现一下,本文的代码可以直接运行,给你以后的并发编程作为参考: 队列+多线程 定义一个大小为 400 的队列,然后开启 200 个线程,每个线程都是不断的从队列中获取 url 并访问. 主线程读取文件中的 url 放入
-
python通过http上传文件思路详解
这里主要是解决multipart/form-data这种格式的文件上传,基本现在http协议上传文件基本上都是通过这种格式上传 1 思路 一般情况下,如果我们往一个地址上传文件,则必须要登陆,登陆成功后,拿到cookies,然后在上传文件的请求携带这个cookies. 然后我们就需要通过浏览器在网站上传文件,这个时候我们需要打开浏览器的开发者工具或者fiddler,然后按照抓到包组装我们的上传文件的post请求 大家把握一个原则就是:在post请求中,用files参数来接受文件对象相关的参数,通
-
python框架flask知识总结
一.Flask蓝图目录 我们之前写的Flask项目都是自己组织的目录结构,其实Flask官方有其推荐的目录结构,以下就是一个符合官方推荐的Flask小型应用的项目结构目录示例,如下: 如图,这就是我们建立好的一个目录结构,一层一层的看一下,首先是app目录,它就是我们的主应用程序目录了,其中有一个__init__.py文件,里面的内容如下: app/init.py from flask import Flask from .views.acc import acc_bp from .views.
-
python爬虫请求库httpx和parsel解析库的使用测评
Python网络爬虫领域两个最新的比较火的工具莫过于httpx和parsel了.httpx号称下一代的新一代的网络请求库,不仅支持requests库的所有操作,还能发送异步请求,为编写异步爬虫提供了便利.parsel最初集成在著名Python爬虫框架Scrapy中,后独立出来成立一个单独的模块,支持XPath选择器, CSS选择器和正则表达式等多种解析提取方式, 据说相比于BeautifulSoup,parsel的解析效率更高. 今天我们就以爬取链家网上的二手房在售房产信息为例,来测评下http
-
Python Flask 请求数据获取响应详解
目录 一,请求数据及其获取 1.1请求相关数据 1.2固定参数与转换器 1.3查询参数获取 1.4表单数据获取 1.5文件上传 1.6其他请求参数 二,响应数据之新书三件套 2.1字符串响应形式 2.2模板响应格式 2.3重定向响应形式 三,响应json数据与元组数据 3.1json数据响应 3.2元组数据响应 四,make_response()自定义响应 总结 一,请求数据及其获取 1.1请求相关数据 #请求参数 客户端的请求参数一般存在于三个地方 1,请求体 2,请求头 3,URL参数 1)
-
python爬虫http代理使用方法
目前,许多网站都设置了相应的防爬虫机制.这是因为有些人在实际的防爬虫主权过程中恶意收集或恶意攻击.一般来说,爬虫类开发者为了能够正常收集数据,速度相对较慢,或者一部分爬虫类开发者在网上搜索免费的http代理. 但是,这个免费的http代理,因为稳定性和速度都不理想,如何在不侵犯对方利益的前提下正常收集数据成为问题. 解决办法 1.使用http代理提高访问速度,http代理店可以增加缓冲来提高访问速度,通常代理服务器设置大的缓冲区. 通过站点信息通过后,保存相应的信息,下次浏览相同的站点或相同的信
-
python http服务flask架构实用代码详解分析
依赖库 flask安装,使用豆瓣源加速. pip install flask -i https://pypi.douban.com/simple gevent安装,使用豆瓣源加速. pip install gevent -i https://pypi.douban.com/simple 代码 #!/user/bin/env python # coding=utf-8 """ @project : TestDemo @author : huyi @file : app.py @
-
python案例中Flask全局配置示例详解
目录 WEB服务全局配置 Flask全局配置 before_request after_request Flask自定义中间件 WEB服务全局配置 在目前的开发过市场当中,有很多WEB服务框架,Flask只是其中之一,但是总体上来看,所有的WEB框架都是依据HTTP协议的逻辑从请求到响应设计的.固然有很多功能是独立的,但是也有一部分功能需要全局设定,比如安全校验,比如埋点日志,那么这里就用到了全局配置. 所谓的全局配置,就是在框架全局,请求前后,响应前后,设置的全局配置,比如登录校验,这个功能并
-
python操作列表的函数使用代码详解
python的列表很重要,学习到后面你会发现使用的地方真的太多了.最近在写一些小项目时经常用到列表,有时其中的方法还会忘哎! 所以为了复习写下了这篇博客,大家也可以来学习一下,应该比较全面和详细了 列表(list): 用来存放相同或者不同元素(字符)用逗号隔开的一个存储方式. list我个人认为最重要的有一点大家可能都容易忽略那就是复制列表,这点文章最后来讲解 定义三个列表的样例 lis = [1, 2, 3, 4, 5, 6] lis = ['a', 'b', 'c', 'd'] lis =
-
python golang中grpc 使用示例代码详解
python 1.使用前准备,安装这三个库 pip install grpcio pip install protobuf pip install grpcio_tools 2.建立一个proto文件hello.proto // [python quickstart](https://grpc.io/docs/quickstart/python.html#run-a-grpc-application) // python -m grpc_tools.protoc --python_out=. -
-
python数字图像处理之高级滤波代码详解
本文提供许多的滤波方法,这些方法放在filters.rank子模块内. 这些方法需要用户自己设定滤波器的形状和大小,因此需要导入morphology模块来设定. 1.autolevel 这个词在photoshop里面翻译成自动色阶,用局部直方图来对图片进行滤波分级. 该滤波器局部地拉伸灰度像素值的直方图,以覆盖整个像素值范围. 格式:skimage.filters.rank.autolevel(image, selem) selem表示结构化元素,用于设定滤波器. from skimage im
-
Python类的继承和多态代码详解
Python类的继承 在OOP(ObjectOrientedProgramming)程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Baseclass.Superclass). 我们先来定义一个classPerson,表示人,定义属性变量name及sex(姓名和性别): 定义一个方法print_title():当sex是male时,printman:当sex是female时,prin
-
python中的常量和变量代码详解
局部和全局变量: # name='lhf' # def change_name(): # # global name # name='帅了一比' # print('change_name',name) # # # change_name() # print(name) # name='lhf' # # def change_name(): # name1='帅了一比' # name2='帅了一比' # name3='帅了一比' # print('change_name',name) # # ch
-
Python制作七夕比心表白代码详解
每到各种节日,不少小伙伴都会遇到这样一个世纪问题--怎么给心仪的女生/女朋友/老婆一个与众不同的节日惊喜. 这不马上就又到七夕了嘛,我们可以尝试用python给女朋友比心表白! 下面就带大家来领略一下python表白的方式,感受一下IT人的浪漫. Turtle基本参数 python的强大在于它有许多的强大的库,turtle是其中可以交互式的绘画的模块.也是很多提升初学者学习python乐趣的秘密法宝! 作为一个艺术白痴,想要画一幅画可能很困难,但是利用python的turtle库,只需要几行代码
-
python os.system执行cmd指令代码详解
1.执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功. 2.在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码. os.system()方法是简单粗暴的执行cmd指令,没有办法获取到cmd输出的内容. 实例 # coding:utf-8 import os os.system("ls") Python如何使用OS模块调用cmd 在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os
-
Python实现获取当前目录下文件名代码详解
一. 小背景: 事情是这样的:本学期小崔又担任好多课代表,其中英语科课程中老师布置了一项作业并需要我收集,为提高英语作业完成率呢,需要每天统计作业的上交情况,并将名单公示,由于处在疫情期间的大学生最近网课和打卡系列活动那么多,况且小崔最近比较'懒',能够用一个python命令来完成这个工作量何乐而不为呢! 二. 实现过程 实现环境 Windows10 python 3 [这个是菜鸟教程里的python3环境搭建](https://www.runoob.com/python3/python
随机推荐
- 反射调用private方法实践(php、java)
- ajax 不错的应用
- js滚动条回到顶部的代码
- thinkPHP交易详情查询功能详解
- Navicat查询结果不能修改的原因及解决方法
- SQL分组排序去重复的小实例
- SQL Server 远程连接服务器详细配置(sp_addlinkedserver)
- Linux下Makefile的automake生成全攻略
- jQuery实用技巧必备(上)
- 在IE中调用javascript打开Excel的代码(downmoon原作)
- java去除集合中重复元素示例分享 java去除重复
- 微信小程序之电影影评小程序制作代码
- php获取ajax的headers方法与内容实例
- Java深度复制功能与用法实例分析
- 微信小程序实现图片上传
- Python3+Appium安装使用教程
- 微信小程序npm引入vant-weapp的踩坑记录
- python实现的发邮件功能示例
- python 求10个数的平均数实例
- python 解决flask 图片在线浏览或者直接下载的问题