我可以像处理模型或视图那样使用 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
在 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