Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在aiohttp服务器应用程序中实现当前的_请求_Python_Sqlalchemy_Python Asyncio_Aiohttp - Fatal编程技术网

Python 如何在aiohttp服务器应用程序中实现当前的_请求

Python 如何在aiohttp服务器应用程序中实现当前的_请求,python,sqlalchemy,python-asyncio,aiohttp,Python,Sqlalchemy,Python Asyncio,Aiohttp,嗨,我正在为SQLALchemy编写数据库扩展 关于SQLAlchemy文档页面: 我需要返回当前请求的函数 您对如何在aiohttp服务器应用程序中实现此类功能有何想法 class MyApp(web.Application): def get_current_request(self): # TODO pass 目前唯一的选择是显式地将请求对象(从处理程序)传递到需要的任何位置。否则,在处理程序之外,很难说哪个请求是当前请求 值得注意的是,隧道中有

嗨,我正在为SQLALchemy编写数据库扩展

关于SQLAlchemy文档页面:

我需要返回当前请求的函数

您对如何在aiohttp服务器应用程序中实现此类功能有何想法

class MyApp(web.Application):

    def get_current_request(self):
        # TODO
        pass

目前唯一的选择是显式地将请求对象(从处理程序)传递到需要的任何位置。否则,在处理程序之外,很难说哪个请求是当前请求


值得注意的是,隧道中有一盏灯(请同时观看)。到目前为止,它只是一个草案,但它可以帮助在异步上下文中传递这样的变量,就像TLS(Thread local storage
threading.local()
)一样。

aiohttp不鼓励这种方法,相反,您应该在使用请求对象时传递它。一种可能的方法是使用基于类的视图。或者,您也可以像不能将SQLAlchemy ORM与任何异步框架一起使用一样使用自己的框架——这会降低性能。唯一的方法是在线程池中运行所有SQL查询——或者使用低级库,如aiopg和asyncpg