Django: separating business logic from view logic
可能的参考:Django中业务逻辑和数据访问的分离
在我的django应用程序中,我试图找出在哪里包含我的业务逻辑。逻辑不适合任何模型(假设它是一个单页应用程序,没有任何模型),所以我想添加一个包含逻辑的模块。例如,
项目/应用程序/我的逻辑.py
1 2 | def calculate(number_one, number_two): return number_one + number_two |
然后,我会用这样的逻辑,
项目/应用程序/视图.py
1 2 3 | def index(request): number = my_logic.calculate(1, 2) #can I do this? return HttpResponse("the number is: %s" % number) |
号
问题:
注意:这是您导入模块的方式(如果其他人试图了解如何操作模块)
1 2 | project/app/your_module/your_module.py project/app/your_module/__init__.py |
从views.py,
1 | from app.your_module import your_module |
。
取决于,但是如果它是一个逻辑单元,那么一个单独的python模块将是一个很好的开始,您当然可以为它编写自己的单元测试(而不是Django与testclient的内置集成测试)。
如果它需要在模型中工作,那么模型上的属性将是一个更好的地方。