我目前正在构建一个使用单例对象的Django应用程序。 我想将此对象保存为CBV变量,因为我不想为每次“get”调用初始化它。
简而言之 - 你能否让CBV的get函数成为类方法的实例方法而不是? 如果是这样,我可以将变量保存为实例变量吗?
编辑 - 对我的问题有更好的解释:
我创建了一个类,用于处理与电子测量仪器的序列化连接。 这个类必须只有1个实例(单例),如果创建另一个实例,内存泄漏将导致python崩溃。
我希望以下列方式将它与django一起使用:
获取某个网址的请求 - > 该视图将向仪器类实例询问数据 - > 实例响应数据 - > View返回带有数据的JsonResponse。
我认为最好的方法是将CBV的get方法(与url相关)从一个实例方法中获取,但它不是一个好的做法..
我该怎么做?
答案 0 :(得分:0)
正如我所说,get
是实例方法。
但你这里的责任令人困惑。一堂课应该只有一个责任。视图类负责响应请求并返回响应;这与仪器的连接完全不同。这应该是一个单独的类,它在模块级别实例化并在视图类中使用。