用了Django有一段时间 很是喜欢他apps的概念 每个功能均可以当作一个app 可方便的组织和管理。但有一个问题就是每每在一个app里的views 和 models 里要写好多的代码,因此我想应该化整为零的来管理。html
下面是个人目录结构python
project_dir/ ahead/ settings/ __init__.py development.py production.py static/ templates/ layouts/ base.html _header.html _footer.html index.html utils/ __init__.py lazy.py db.py views/ __init__.py home.py manage.py
我单独建了了一个settings文件夹,原有的settings.py变成了settings/init.py 而后development.py和production.py分别导入应用init.py里的变量 而后再根据各自的环境进行配置管理 例如要想载入开发环境的配置文件只须要 python manage.py runserver --settings=ahead.settings.development
便可 固然也能够在manage.py里作手脚 能够少输入好多字符git
下面关一下utils文件夹 是为了我这个懒人作准备 写Python每次都要导入不少的库和模块 全部我就建了一个lazy.py的文件 就是导入django里经常使用的模块 而后我在view里直接from ahead.utils.lazy import *
就好了github
db.py 没建一个表起码要有建立日期吧 固然Django的Model建立的时候是没有的 为了省事我建立了一个DateTimeModel, 很是简单 这样建立Model的时候只要继承DateTimeModel的时候就能够自动加上建立和修改数据的时间了django
# -*- coding: utf-8 -*- from django.db import models class DateTimeModel(models.Model): create_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) class Meta: abstract = True
是否是每次都这样建一个项目会很麻烦 因此咱们要把上传到github上 而后在每次建立项目的时候只要在命令行输入app
django-admin.py startproject --template=https://github.com/julytwilight/django-template/zipball/master your_project_name 便可命令行