我心中的Django最佳實踐 目錄篇

用了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
  • 最後就是views目錄 每每一個app會有不少的功能 若是隻用一個views.py可能一個文件會寫的很長很長 因此建一個views文件夾 把沒一個功能點均可以分紅一個文件 這樣就能夠方便的管理 我比較傾向於rails的模式 好比user.py裏建立index, add, create, edit, update, delete方法表明各自的功能 簡單明瞭

是否是每次都這樣建一個項目會很麻煩 因此咱們要把上傳到github上 而後在每次建立項目的時候只要在命令行輸入app

django-admin.py startproject --template=https://github.com/julytwilight/django-template/zipball/master your_project_name 便可命令行

相關文章
相關標籤/搜索