我可以像处理模型或视图那样使用 Django 从文件夹中的文件导入函数吗?

Can I import a function from a file in a folder with Django as I would do with the models or views?

Django 3.0 中,而不是像往常一样将所有模型放在一个 models.py 文件中:

my_project/
├── my_project/
└── my_app/
    ├── models.py
   ...

您可以创建一个models/文件夹,将每个模型放在一个单独的文件中,添加到__init__.py文件后可以正常调用。

my_project/
├── my_project/
└── my_app/
    ├── models/
    │   ├── __init__.py
    │   ├── my_models_file.py
    │   └── my_other_models_file.py
   ...

models/__init__.py 应该是这样的:

from .my_models_file import *
from .my_other_models_file import *

而我的 my_models.py 中的 models.MyExampleModel 可以在我的其他文件中正常调用,如下所示:

from .models import MyExampleModel


# My code

这也可以通过 views

这是我的问题:
是否可以对非 Django 相关文件进行相同的处理?

我的 views.py 中有几个功能 不是视图 。他们不渲染任何东西。这些是简单的 python 函数,用于使其中一些函数可重用。

# My imports


# My view rendering something


def my_function(arg):
    # Do something


def my_other_function(arg):
    # Do something

我想将它们放在一个文件夹中,并将每个函数放在一个单独的文件中。有这样的东西:

my_project/
├── my_project/
└── my_app/
    ├── my_functions/
    │   ├── __init__.py
    │   ├── my_functions_file.py
    │   └── my_other_functions_file.py
   ...

我尝试用类似的东西导入它,但没有成功。

from my_functions.my_functions_file import my_function

def new_function():
    my_function(arg)

是否有类似的方式进行?这样做的目的是尽可能保持文件的清洁和可读性。我不喜欢在我的 views.py 中有很多与视图无关的功能,我想将它们放在它们自己的文件夹中。

感谢您的帮助。如果我不清楚,请询问更多信息。

使用这个

from my_app.my_functions.my_functions_file import my_function