Django 如何将所有 app 统一放在 apps 目录下进行管理

背景

在 Django 的工程目录中,主 app 跟子 app 默认是保持同一级目录的关系的,这样的项目目录层次不是很清晰,当 app 或者其他项目相关的配置文件越来越多,非常不适合进行管理

需求

期望能够将 Django 项目中的所有 app 统一放在某个目录下,如项目根目录下的 apps 目录下进行管理

解决方案

1.在项目根目录下创建 apps 文件夹,与主 app 目录保持同一级关系

2.将现有的 app 目录移动到 apps 目录下

3.配置 settings.py,添加如下搜索 apps 目录的路径

import sys
import os

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

4.运行 debug server,检查项目是否能够正常启动

python manage.py runserver
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将多个子应用程序放置在一个名为 `apps` 的目录中是一种常见的 Django 应用程序组织方式。在这种情况下,需要在 `settings.py` 文件中进行一些配置。 首先,您需要在 `INSTALLED_APPS` 中列出每个应用程序的名称。通常,您可以使用 `.` 来指定应用程序的路径。例如,如果您的应用程序位于 `apps.blog` 中,则可以将其添加到 `INSTALLED_APPS` 中: ```python INSTALLED_APPS = [ # ... 'apps.blog', 'apps.comments', # ... ] ``` 接下来,您需要告诉 Django 在哪里查找应用程序的模板文件。在 `TEMPLATES` 中,您可以为每个应用程序添加一个模板文件夹路径。例如,如果您的应用程序的模板文件存储在 `apps/blog/templates` 和 `apps/comments/templates` 中,则可以将其添加到 `TEMPLATES` 中: ```python TEMPLATES = [ { # ... 'APP_DIRS': True, 'DIRS': [ # ... os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'apps', 'blog', 'templates'), os.path.join(BASE_DIR, 'apps', 'comments', 'templates'), ], # ... }, ] ``` 在这个示例中,`APP_DIRS` 被设置为 `True`,这表示 Django 将在每个应用程序中查找模板文件夹。此外, `DIRS` 列表中包含了所有应用程序的模板文件夹路径,以及项目级别的模板文件夹路径。 最后,您需要将每个应用程序的静态文件存储在一个单独的文件夹中。在 `STATICFILES_DIRS` 中,您可以为每个应用程序添加一个静态文件夹路径。例如: ```python STATICFILES_DIRS = [ # ... os.path.join(BASE_DIR, 'apps', 'blog', 'static'), os.path.join(BASE_DIR, 'apps', 'comments', 'static'), ] ``` 以上是将多个子应用程序放置在一个名为 `apps` 的目录中的 Django 配置方法。希望能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值