使用django时间也不短了。之前很少考虑django 项目的目录结构,最近看了几个django开源项目,感觉不错。感觉值得学习,所以也定制一个自己喜欢的项目目录。

首先,先晒一下自己的现有目录结构:

如上是我的一个CAAS平台的项目目录,各级目录的具体说明如下:

目录 含义
README.md 改文件描述该项目
/caas 工程目录,创建工程命令(django-admin startproject caas)
/caas/apps 项目下的具体应用(django-admin startapp caas)
/caas/libs 项目下的公共类库
/docs 项目文档目录
/requirements 应用以来的软件包列表

requirements.txt

应用以来的软件包

/static

静态资源目录(包含css、js、img等)

/templates 模版目录

如果按照这样的结构进行项目管理,需要改哪些那?首先,需要更改setting.py 配置文件:

一共需要修改三个地方,具体修改如下:

#static 文件目录设置

STATICFILES_DIRS = (
    "/data/caas/static",
)

#template目录设置
TEMPLATES_DIR = os.path.join(BASE_DIR, 'templates')
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            TEMPLATES_DIR,       
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

#添加caas 应用
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'caas.apps.caas', #这里要将目录写全
)

接下来需要修改url设置,首先需要修改项目下url:

#/caas/urls.py
"""caas URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.8/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Add an import:  from blog import urls as blog_urls
    2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
"""
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^', include('caas.apps.caas.urls')),  #这里也要讲目录写全
]

接下来需要修改app的url:

#/caas/apps/caas/urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
	url(r'^images.html$', 'caas.apps.caas.views.images'),
	url(r'^container.html$', 'caas.apps.caas.views.container'),
	url(r'^form_container.html$', 'caas.apps.caas.views.form_container'),
        url(r'^$', 'caas.apps.caas.views.images'),
)

#这里路由对应的view 也要写完成。

到这里,一个django项目的目录结构差不多就搞定了。该定制结构不一定对每一位coder口味,所以还需根据自己的喜好进行订制。