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

Ray*_*Ray 5 python oop django

如果这似乎是一个愚蠢的问题,我深表歉意,但我仍然是 Python/Django 程序员的新手。在 Django 应用程序中创建不是将保存在数据库中的模型的 Python 对象是否正常?

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

困扰我的是这些不是我想保存在我的数据库中的对象,所以我不太知道我是否应该使用它们,如果我应该使用它们,我会把它们放在哪里。我在 Django 应用程序中提出的方法是典型的吗?如果是这样,关于 Django 模型/视图/模板结构,我将在哪里存储这些对象?另外,是否有任何流行的 Django 模块或库可以执行我所描述的我应该研究的内容?

预先感谢您的回复。

dm0*_*514 1

您可以将对象存储在任何地方。您的视图文件或模型文件或任何地方可能有辅助函数。我更喜欢将各种函数放在一个utils.py文件中,但这不是惯例,只是我最终要做的事情。我最终将大部分杂项辅助函数和基类放入common应用程序中,更具体地说是放在common.utils文件中。

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

  • 项目
    • 常见的
      • 客户
    • 应用程序1
      • 客户
    • 应用程序2
      • 客户

然后在app1客户端

from project.common.client import BaseClient

class ConcreteApp1Client(BaseClient):
  pass
Run Code Online (Sandbox Code Playgroud)

然后在我的视图或管理命令或模型或任何具体客户端可以正常导入和使用的地方。 from project.app1.client import ConcreteApp1Client