Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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
在Django应用程序中使用Python对象_Python_Django_Oop - Fatal编程技术网

在Django应用程序中使用Python对象

在Django应用程序中使用Python对象,python,django,oop,Python,Django,Oop,如果这是一个愚蠢的问题,我很抱歉,但我仍然是一个非常初级的Python/Django程序员。在Django应用程序中创建不是将保存在数据库中的模型的Python对象是否正常 我正在创建一个相当大的Django应用程序,对我来说,我的代码真的开始有“味道”。我的意思是,我的观点变得越来越大,因为我采取的是过程性的方法,而不是面向对象的方法。我的直觉告诉我,如果我使用更多具有自身属性和行为的对象,而不是在视图中将信息从一个函数传递到下一个函数,那么从长远来看,我的代码可能会更简单、更易于测试、更健壮

如果这是一个愚蠢的问题,我很抱歉,但我仍然是一个非常初级的Python/Django程序员。在Django应用程序中创建不是将保存在数据库中的模型的Python对象是否正常

我正在创建一个相当大的Django应用程序,对我来说,我的代码真的开始有“味道”。我的意思是,我的观点变得越来越大,因为我采取的是过程性的方法,而不是面向对象的方法。我的直觉告诉我,如果我使用更多具有自身属性和行为的对象,而不是在视图中将信息从一个函数传递到下一个函数,那么从长远来看,我的代码可能会更简单、更易于测试、更健壮

让我感到困扰的是,这些对象不是我想保存在数据库中的对象,所以我不太知道是否应该使用它们,如果应该,应该放在哪里。我建议的方法在Django应用程序中是典型的吗?如果是这样的话,我会将这些对象存储在Django模型/视图/模板结构的什么位置?还有,有没有流行的Django模块或库可以实现我所描述的我应该学习的功能


提前感谢您的回复。

如果您觉得某些变量最好封装在类中,Django也有基于类的视图


您可以将对象存储在任何位置。在视图文件或模型文件中或任何地方都可能有帮助器函数。我更喜欢将杂项函数放在
utils.py
文件中,但这不是惯例,只是我最终要做的事情。最后,我将大多数其他助手函数和基类放在
common
应用程序中,更具体地说,放在
common.utils
文件中

在一个项目中,我有很多应用程序,每个应用程序都有一个api客户端。客户端的基类驻留在名为
common
的应用程序中。然后每个应用程序在
client.py
文件中都有其特定的客户端

  • 计划
    • 普通的
      • 客户
    • 附件1
      • 客户
    • 附件2
      • 客户
然后在app1客户端中

from project.common.client import BaseClient

class ConcreteApp1Client(BaseClient):
  pass

然后在我的视图或管理命令或模型中,或者在任何可以正常导入和使用具体客户机的地方<代码>从project.app1.client导入ConcreteApp1客户端

是的,这实际上是Django应用程序中的一个常见问题。最好使用不适合
models.py
/
views.py
的对象和类来建模业务逻辑,并尽可能使用它们。然后,您可以根据需要使用模型将内容保存到数据库中。