Django目录结构最佳实践

Django项目目录结构

项目目录结构

python 复制代码
└── backend         # 后端项目目录(项目名称)
    ├── __init__.py
    ├── logs         # 项目日志目录
    ├── manage.py    # 项目启动文件
    ├── scripts      # 保存项目运维的脚本文件 bash
    │   └── __init__.py
    └── backend     # 项目主应用(项目名称)
        ├── apps     # 存放项目中所有自定义app
        │   └── __init__.py
        ├── asgi.py
        ├── __init__.py
        ├── libs              # 第三方类库的保存目录[第三方组件、模块](包)
        │   └── __init__.py
        ├── settings
        │   ├── dev.py         # 开发环境本地配置文件
        │   ├── __init__.py
        │   ├── prod.py        # 生产环境本地配置文件
        │   └── test.py        # 测试环境本地配置文件
        ├── settings.py
        ├── urls.py            # 项目总路由,总入口 
        ├── utils          # 多个模块[子应用]的公共函数类库[自己开发的组件]
        │   └── __init__.py
        └── wsgi.py

配置文件引用修改

将settins.py文件修改为dev或其他环境得本地配置文件时需修改项目管理文件中得配置文件引用

打开manage.py

python 复制代码
原 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings")
修改后 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings.dev")

创建自定义子应用方法

举例:创建一个home子应用

python 复制代码
cd backend/apps
python ../../manage.py startapp home

修改自定义注册目录从apps目录开始

settings.dev.py

python 复制代码
import sys
BASE_DIR = Path(__file__).resolve().parent.parent
# 注意要放在dev.py(本地配置文件)最上面
sys.path.insert(0, str(BASE_DIR / 'apps'))
INSTALLED_APPS = [
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "rest_framework",
    # 自己的app
    "home",
]
python 复制代码
import sys
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(BASE_DIR / 'apps'))

通过这样调整后,后续我们在本地配置文件中注册子应用时以及在路由视图中导入子应用的路由时就不需要再写apps目录,直接写子应用名称即可,再次强调这些目录配置要写在本地配置文件最上面

相关推荐
<小智>13 小时前
及时做APP开发实战(十二)-LazyForEach懒加载优化实践
数据库·鸿蒙
龙仔72513 小时前
人大金仓KingbaseES V8 手动单库备份&恢复操作笔记
数据库·笔记·oracle·人大金仓
梅雅达编程笔记13 小时前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
夏贰四16 小时前
数据库迁移怎样降低人力投入?数据库迁移怎么实现全量增量同步?
数据库·数据库迁移
梅雅达编程笔记16 小时前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
汇智信科16 小时前
图谱、向量、关键词、SQL多路一体,FastKG垂域召回率100%拉满
网络·数据库·ai编程·汇智信科·hsim·fastclaw·汇智龙虾
笨蛋不要掉眼泪18 小时前
MySQL架构揭秘:慢查询日志详解
数据库·mysql·架构
pulinzt18 小时前
Tableau的基础使用
数据库·numpy
糖果店的幽灵18 小时前
【langgraph 从入门到精通graphApi 篇】LangGraphAPI 方式调用 - 初识与核心概念
数据库·人工智能·langgraph
TlSfoward19 小时前
TLSFOWARD TLS指纹
开发语言·数据库·爬虫·搜索引擎·https·php