aiohttp服务器的全局请求

aiohttp-request的Python项目详细描述


info:Global request for aiohttp server
https://travis-ci.org/hellysmile/aiohttp_request.svg?branch=masterhttps://img.shields.io/pypi/v/aiohttp_request.svghttps://codecov.io/gh/hellysmile/aiohttp_request/branch/master/graph/badge.svg

安装

pip install aiohttp_request

用法

importasynciofromaiohttpimportwebfromaiohttp_requestimportThreadContext,middleware_factory,grequest,get_requestdefthread():assertgrequest['sense']==42asyncdeftask():# grequest is `lazy` version of requestassertgrequest['sense']==42loop=asyncio.get_event_loop()# works for threads as well with ThreadContextawaitloop.run_in_executor(None,ThreadContext(thread))asyncdefhello(request):# get_request is on-demand function to get current requestassertget_request()isrequestrequest['sense']=42# asyncio.Task is supportedawaitasyncio.ensure_future(task())returnweb.Response(text="Hello, world")app=web.Application(middlewares=[middleware_factory()])app.add_routes([web.get('/',hello)])web.run_app(app)

python 3.7+是必需的,没有办法支持旧的python版本!!!

注释

库依赖于PEP 567及其asyncio support

aiohttp请求通过contextvars_executor与线程很好地协同工作,不需要threadcontext

importasynciofromaiohttpimportwebfromaiohttp_requestimportmiddleware_factory,grequestfromcontextvars_executorimportContextVarExecutordefthread():assertgrequest['sense']==42asyncdefhello(request):request['sense']=42loop=asyncio.get_event_loop()awaitloop.run_in_executor(None,thread)returnweb.Response(text="Hello, world")loop=asyncio.get_event_loop()loop.set_default_executor(ContextVarExecutor())app=web.Application(middlewares=[middleware_factory()])app.add_routes([web.get('/',hello)])web.run_app(app)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序