让Django的CBV得到一个实例方法

时间:2017-01-10 07:49:52

标签: python django django-class-based-views

我目前正在构建一个使用单例对象的Django应用程序。 我想将此对象保存为CBV变量,因为我不想为每次“get”调用初始化它。

简而言之 - 你能否让CBV的get函数成为类方法的实例方法而不是? 如果是这样,我可以将变量保存为实例变量吗?

编辑 - 对我的问题有更好的解释:

我创建了一个类,用于处理与电子测量仪器的序列化连接。 这个类必须只有1个实例(单例),如果创建另一个实例,内存泄漏将导致python崩溃。

我希望以下列方式将它与django一起使用:

  

获取某个网址的请求 - >       该视图将向仪器类实例询问数据 - >           实例响应数据 - >               View返回带有数据的JsonResponse。

我认为最好的方法是将CBV的get方法(与url相关)从一个实例方法中获取,但它不是一个好的做法..

我该怎么做?

1 个答案:

答案 0 :(得分:0)

正如我所说,get 实例方法。

但你这里的责任令人困惑。一堂课应该只有一个责任。视图类负责响应请求并返回响应;这与仪器的连接完全不同。这应该是一个单独的类,它在模块级别实例化并在视图类中使用。