Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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 Django 1.9基于类的视图单例_Python_Django_Mongodb_Django Class Based Views - Fatal编程技术网

Python Django 1.9基于类的视图单例

Python Django 1.9基于类的视图单例,python,django,mongodb,django-class-based-views,Python,Django,Mongodb,Django Class Based Views,Django中基于类的视图存在一个问题,我无法找到简单的解决方案 让我们创建一些基于类的视图: class userspaceDispatcher(View): def __init__(self,*args, **kwargs): super().__init__(*args, **kwargs) self.someSharedStuff = MongoConnector() # As example def dispatch(self, re

Django中基于类的视图存在一个问题,我无法找到简单的解决方案

让我们创建一些基于类的视图:

class userspaceDispatcher(View):
    def __init__(self,*args, **kwargs):
        super().__init__(*args, **kwargs)
        self.someSharedStuff = MongoConnector() # As example

    def dispatch(self, request, *args, **kwargs):
        # Some code here, it does not matter
        return dispatchResult
然后,当我们进行HTTP调用时,它将传递到我的视图,每次都将创建userspaceDispatcher的新实例。 例如,为了处理请求,我需要MongoDB连接器。正如我在探查器上看到的,连接器的初始化需要5-7毫秒


所以问题是-如何使视图类成为单例?不是每个请求都要初始化吗?

基于类的视图和基于函数的视图的解决方案是一样的。在视图之外的模块级定义共享值,这样每个进程只实例化一次。

我可以问您示例的链接吗?通过在类定义之前添加共享调度程序={}解决。