可能的重新认识:Separation of business logic and data access in django
在我的Django应用程序中,我试图弄清楚在哪里包含我的业务逻辑。逻辑不适合任何模型(假设它是一个没有任何模型的单页应用程序)所以我想添加一个包含逻辑的模块。例如,
项目/应用/ my_logic.py
def calculate(number_one, number_two):
return number_one + number_two
然后,我会使用逻辑,
项目/应用/ views.py
def index(request):
number = my_logic.calculate(1, 2) #can I do this?
return HttpResponse("the number is: %s " % number)
问题:
my_logic.py
的正确位置在哪里?注意:这是您导入模块的方式(如果有其他人试图弄清楚如何操作)
project/app/your_module/your_module.py
project/app/your_module/__init__.py
来自views.py,
from app.your_module import your_module
答案 0 :(得分:0)
取决于,但如果它是一个逻辑单元,那么一个单独的python模块将是一个良好的开端,你当然会为它编写自己的单元测试(而不是Django与TestClient的内置集成测试)。
如果它需要在模型中工作,那么模型上的属性将是一个更好的地方。