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



我目前正在构建一个使用singleton对象的Django应用程序。我想把这个对象保存为CBV变量,因为我不想为每次"get"调用初始化它。

简而言之,我的问题是,你能让CBV的get函数成为类方法的实例方法吗?如果是,我可以将一个变量保存为实例变量吗?

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

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

我想以以下方式将其与django一起使用:

获取到某个url地址的请求->视图将向仪器类实例请求数据->实例用数据响应->视图用数据返回JsonResponse。

我认为最好的方法是将CBV的get方法(其与url im geting from相关)作为实例方法,但这不是一个好的做法。。

我该怎么做?

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

但你在这里混淆了责任。一个班级应该只有一个责任。视图类负责响应请求并返回响应;这与仪器的连接是完全分开的。这应该是一个单独的类,在模块级别实例化并在视图类中使用。

最新更新