在Django中,为django-admin.py/manager.py 编写自定义管理命令很容易.
但是,这些命令驻留在应用程序级别,而不是整个项目级别.您将实现放入<project_dir>/<app_dir>/management/commands目录中,然后自动发现它们.
我有许多项目级别的命令,与项目中的任何一个应用程序无关.我可以将它们放在其中一个应用程序中,但有没有办法在Django中实现项目级管理命令?
Ski*_*Ski 17
您可以拥有名为core或类似的应用程序,其中包含与任何应用程序无关的内容.这些可以是管理命令,temlatetags,模型以及其他模块,如表单,装饰器,中间件.您可以将项目目录本身用作"核心"应用程序.
以下是我倾向于构建项目的方式:
project_name
not_reusable_app1
not_reusable_app2
templatetages
tempates
utils
models.py
settings.py
management
middleware.py
forms.py
processors.py
__init__.py
parts
reusable-app-1
reusable_app_1
setup.py
reusable-app-2
reurable-app-3
gereric-python-lib
django
setup.py
Run Code Online (Sandbox Code Playgroud)
我INSTALLED_APPS通常看起来像这样:
INSTALLED_APPS = (
...
'project_name',
'project_name.not_reusable_app1',
'reusable_app1',
...
)
Run Code Online (Sandbox Code Playgroud)
我不对任何与其他python包兼容的django应用程序进行任何特殊处理.例如,我不把它们放在apps相似的目录下.
很明显,我的不可重复使用的应用程序是项目的一部分.例如,项目下不可重复使用的应用程序通常使用项目中的各种实用程序project_name.utils.decorators.some_kind_of_deco.
如果您不喜欢将项目用作应用程序,就像我提到的那样,您可以将所有内容都移动到project_name.core.
| 归档时间: |
|
| 查看次数: |
2491 次 |
| 最近记录: |