Django:在哪里放置辅助函数?


72

我写了一些需要在django应用程序中使用的函数。我将文件放在哪里?如何在视图中调用它们?

Answers:


79

我通常将这样的应用程序特定的帮助器函数放在utils.py文件中,并使用类似的东西

from myapp.utils import my_cool_func

def view_coolness(request):
    data = my_cool_func(request)
    return render_to_response("xxx.html")

但这取决于您的助手所做的事情,可能是他们修改了request,可能是中间件的一部分,因此您需要知道这些助手函数的确切作用


20
在代码中提到该应用程序通常是一个坏主意。只是在做from utils import my_cool_func,而不必重新状态的应用程序,你在已进入的名字应该工作。
彼得·本特松

3
@Peter Bengtsson,也许是,但是您如何在包装中的模块中导入工具,例如,我有包含多个视图模块的views文件夹,然后是中间件文件夹等
Anurag Uniyal

2
哇,2009年与众不同。基本上,如果可以用较少的语言说出某事,请用较少的语言说出。如果您决定重命名,那么不捆绑名称也是一件好事。
彼得·本格森

1
意味着您无法轻易移动模块,例如
dalore'Mar

1
我会使用from .utils import func
joshlsullivan,

15

创建一个包含您的通用功能的可重用应用程序,以便您可以在项目之间共享。

使用例如git repo来存储此应用并管理部署和演进(子模块)

使用公共git仓库,以便您可以与社区共享:)


10

如果它们与特定的应用程序相关,我通常只需将它们放在相关的应用程序文件夹中,并将文件命名为“ functions.py”。

如果它们不是特定于应用程序的,则可以制作一个“功能”应用程序文件夹并将其放置在其中。


1

service.py在应用程序文件夹中使用了新的python文件。该文件主要包含针对特定应用的帮助程序查询。我也曾经在Django应用程序中创建一个包含全局帮助器函数和常量的文件夹。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.