日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django 項目布局方法(值得推薦)

瀏覽:28日期:2024-10-19 14:58:16

一、這種布局的優點

項目中的每個應用都相對獨立,方便以后拿出來重用。 這樣的布局會促使你在開發過程中考慮每個應用的重用性。 開發、測試、生產等不同的環境都有各自獨立的配置文件,方便配置項的共享和定制。 不同的環境都有各自獨立的 pip requirements 文件。 每個應用都有各自的 templates 和 static 目錄,你可以通過項目級的 templates 和 static 目錄中的文件對各應用中的相應內容進行覆蓋。 對 models、views、managers 等的測試都各自保存在獨立的文件中,易于閱讀和理解。

二、Django 默認產生的布局

假設項目名為 foo, 使用 python django-admin.py startproject foo 命令產生的默認布局會是:

foo/ manage.py foo/ __init__.py settings.py urls.py wsgi.py

三、推薦的項目布局

假設我們的項目名為 myproject, 其中有兩個應用 blog 和 users,推薦的項目布局可以為:

myproject/ manage.py myproject/ __init__.py urls.py wsgi.py settings/ __init__.py base.py dev.py prod.py blog/ __init__.py models.py managers.py views.py urls.py templates/ blog/base.htmllist.htmldetail.html static/ css/ js/ … tests/ __init__.py test_models.py test_managers.py test_views.py users/ __init__.py models.py views.py urls.py templates/ users/base.htmllist.htmldetail.html static/ css/ js/ … tests/ __init__.py test_models.py test_views.py static/ css/ js/ … templates/ base.html index.html requirements/ base.txt dev.txt test.txt prod.txt

1. 每個應用的目錄位置

最頂層的 myproject 目錄包含有 manage.py 文件,因此是項目的根目錄。 myproject/myproject/ 是項目的內容目錄,項目的根 URL 配置文件, WSGI 配置文件都存放在這里面。

myproject/blog/ 和 myproject/users/ 是項目的兩個應用所在的目錄,將 blog、 users 這兩個應用的目錄與 myproject/myproject/ 平行放置,而不放置在 myproject/myproject/ 目錄內的好處是: 之后要 import 應用中的模塊時,比如 import blog 應用中的 models 時,可以用 import blog.models,而不需要用 import myproject.blog.models,這樣也方便之后能將應用獨立出來重用。

2. 為每個環境設置各自的配置信息

針對項目的各個環境,如本地開發 dev、 內部測試 stage、 自動化流程環境 jenkins 及生產環境 prod,分別創建獨立的配置文件。

在 myproject/myproject 目錄下新建一個 settings 目錄并在里面創建一個空的 __init__.py。 將 myproject/myproject/settings.py 文件搬到 myproject/myproject/settings/ 目錄下,并改名為 base.py,這個文件里面的配置信息被所有其它環境的配置文件所共享。 在 myproject/myproject/settings/ 目錄下分別創建 dev.py、stage.py、jenkins.py 和 prod.py 4 個文件,每個文件中包含如下的一行代碼:

from base import *

這樣,這些環境配置文件就能讀取默認的配置項了,之后就能在各自的配置文件中設置定制的配置值了。比如本地開發環境,可以在 dev.py 中添加 DEBUG=True**, 而生產環境 **prod.py**,可以設置 DEBUG=False`。

指定使用哪個配置文件:

可以通過操作系統的環境變量指定,比如:

export DJANGO_SETTINGS_MODELS='myproject.settings.prod'

也可以通過命令行參數指定, 比如:

./manage.py migrate --settings=myproject.settings.prod

或者

gunicorn -w 4 -b 127.0.0.1:8001 --settings=myproject.settings.prod

3. 修改 INSTALLED_APPS

默認的 INSTALLED_APPS 會是:

INSTALLED_APPS = ( ...)

可以將元組 () 改為列表 []:

INSTALLED_APPS = [ ...]

進一步可以將 INSTALLED_APPS 中的第三方(內置)的應用與我們自己的應用分開,如:

PREREQ_APPS = [ ‘django.contrib.auth’, ‘django.contrib.contenttypes’, … ‘debug_toolbar’, ‘imagekit’, ‘haystack’,]PROJECT_APPS = [ ‘homepage’, ‘users’, ‘blog’,]INSTALLED_APPS = PREREQ_APPS + PROJECT_APPS

這樣分開后,我們就可以只針對我們自己的應用進行 test 和 code coverage。

以上針對 INSTALLED_APPS 的修改也可以針對 TEMPLATE_DIRS 和 MIDDLEMARE_CLASSES 進行。

4. 調整 pip requirements

項目一般都有一個 requirements.txt 文件,可以指定項目的依賴包,根據這個文件,可以用以下命令對依賴包進行自動安裝:

pip install -r requirements.txt

在 requirements.txt 文件中可以用 -r filename 來包含進另一個文件的內容,這個功能和 C 語言中的 #include <filename.h> 類似。

因此,我們可以將通用的依賴信息保存在 myproject/requirements/base.txt 文件中,而針對不同的環境,比如測試環境,保存在另一個文件中,如 myproject/requirements/test.txt, 里面的內容可能會是:

-r base.txtpytest==2.5.2coverage==3.7.1

5. 分割測試文件

在每個應用中分別創建一個包含測試內容的目錄 tests,將對應不同類別的測試分別保存在不同的文件中,如 test_models.py、 test_views.py 等。這樣分配,比起將全部測試代碼放在單個文件中的好處是:代碼更易閱讀,同時還能減少在編輯器中上下翻滾的時間。

6. URL 配置文件

先各個應用內的 urls.py 保存各自的 URL 配置,然后在項目的根 URL 配置文件中,通過 include 命令將子應用的 URL 配置信息包含進行:

urlpatterns = patterns(‘’, url(r’^$’, HomePageView.as_view(), name=‘home’), url(r’^blog/‘, include(‘blog.urls’)), url(r’^user/‘, include(‘users.urls’)),)

7. 模板和靜態文件

各個子應用都應該有各自的模板和靜態文件目錄,如 blog 的模板和靜態文件目錄位置應該為: myproject/blog/templates/blog/ 和 myproject/blog/static/blog/ 。如果想對子應用中的模板和靜態文件進行覆蓋,可以通過在項目根模板和根靜態文件目錄中創建相同名字的文件進行。比如要覆蓋 blog 中的 detail.html 模板,可以通過創建 myproject/templates/blog/detail.html 文件來對默認的模板文件進行覆蓋。

8. 重用子應用

如果想在另一個項目中重用 blog 應用,正確的方法是:

將 blog 應用提取出來,創建一個獨立的代碼庫 在各個項目中,使用 pip install 的方式安裝 blog 應用 在各個項目中,使用 pip 對依賴的 blog 進行更新

參考文獻: http://www.revsys.com/blog/2014/nov/21/recommended-django-project-layout/

到此這篇關于Django 項目布局方法(值得推薦)的文章就介紹到這了,更多相關Django 項目布局方法(值得推薦)內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲天堂av影院| 国产成人久久精品麻豆二区| 国产精品高潮呻吟久久久久| 国产亚洲在线| 国产在线观看www| 青草综合视频| 国产伊人精品| 精品三级久久| 国产一区2区| 嫩呦国产一区二区三区av| 日韩精品欧美大片| 国产区精品区| 啪啪亚洲精品| 亚洲激情av| 中文字幕一区二区三区日韩精品 | 久久精品午夜| 亚洲三级视频| 亚洲欧洲美洲国产香蕉| 欧美中文日韩| 精品日韩视频| 美女av在线免费看| 久久精品系列| 97精品国产| 久久久精品区| 国产欧美一级| 性欧美长视频| 不卡中文一二三区| 欧美日韩精品一本二本三本| 精品国产乱码| 黄色aa久久| 久久精品成人| 国产一区二区精品久| 中文在线а√在线8| 欧美日本不卡高清| 欧美在线看片| 国产福利资源一区| 麻豆一区在线| 麻豆精品视频在线观看视频| 美女性感视频久久| 国产欧美精品久久| 精品网站999| 韩国精品主播一区二区在线观看| 久久免费大视频| 日韩视频中文| 日韩欧美久久| 美女av一区| 久久蜜桃精品| 在线亚洲成人| 免费人成网站在线观看欧美高清| 亚洲欧洲专区| 中文字幕av一区二区三区四区| 亚洲九九精品| 国产精品成人自拍| 国产精品美女在线观看直播| 亚洲女同av| 欧美精品一区二区三区精品| 久久国产精品久久久久久电车| 亚洲3区在线| 蜜桃久久久久| 日本久久成人网| 另类亚洲自拍| 国产精品s色| www.51av欧美视频| 欧美日韩四区| 国产欧美日韩免费观看| 天堂8中文在线最新版在线| 99成人在线| 国产精品网站在线看| 日本久久精品| 欧美在线亚洲综合一区| 亚洲欧美日本国产| 国产色噜噜噜91在线精品| 欧美韩日一区| 免费在线观看日韩欧美| 国产另类在线| 欧洲亚洲一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美在线黄色| 欧美日韩视频免费观看| 在线观看一区| 成人在线免费观看网站| 欧美日韩免费观看一区=区三区| 日本aⅴ精品一区二区三区| 色综合狠狠操| 伊人成人在线视频| 国产精品地址| 啪啪国产精品| 国产剧情一区| 亚洲一区日韩在线| 国产精品最新| 国产成人精品一区二区三区视频 | 日韩黄色在线观看| 伊人久久国产| 黄色av一区| 日韩一区二区三区免费视频| yellow在线观看网址| 首页亚洲欧美制服丝腿| yellow在线观看网址| 红桃视频国产精品| 久久字幕精品一区| 性色一区二区| 日韩精品电影| 欧美一区91| 合欧美一区二区三区| 亚洲综合福利| 午夜精品婷婷| 精品一区二区三区中文字幕在线| 91成人精品视频| 美女国产精品久久久| 亚洲最新av| 欧美一级鲁丝片| 欧美亚洲三级| 丝袜诱惑制服诱惑色一区在线观看| 国产精品久久久久久久免费观看 | 日本欧美在线看| 久久超碰99| 免费成人av在线播放| 韩国精品主播一区二区在线观看 | 午夜久久中文| 国产极品模特精品一二| 最新国产精品视频| 91久久在线| 久久91导航| 毛片在线网站| 久久精品一区二区国产| 在线亚洲国产精品网站| 国产高潮在线| 国产欧美一级| 蜜臀久久久久久久| 人在线成免费视频| 久久国产免费看| 欧美专区18| 国产精品久久久久9999高清| 亚洲手机视频| 青青青国产精品| 亚洲精品精选| 免费黄网站欧美| 国产美女精品| 欧美日韩激情| 欧美日韩国产免费观看视频| 亚洲h色精品| 久久精品影视| 久久男女视频| 日韩国产欧美| 成人久久久久| 91精品国产调教在线观看| 亚洲女同av| 卡一卡二国产精品| 一区二区亚洲视频| 伊人久久成人| 欧美日韩国产在线观看网站 | 国产成人精品免费视| 精品色999| 国产精品chinese| 国产精品亚洲综合久久| 亚洲人成网站在线在线观看| 最新日韩欧美| 婷婷精品进入| 欧美日韩国产一区精品一区| 日韩电影在线视频| 亚洲va中文在线播放免费| 日本不卡一区二区三区| 国产在线不卡一区二区三区| 日韩在线综合| 国产精品av一区二区| 天堂日韩电影| 亚洲欧美日韩高清在线| 亚洲一区二区动漫| 欧美一级二级三级视频| 国产精品任我爽爆在线播放| 美女免费视频一区| 在线精品亚洲| 亚洲区国产区| 国产精品亚洲欧美日韩一区在线| 国产精品毛片久久久| 国产精品久久久免费| 精品国产精品国产偷麻豆| 国产精品视频一区二区三区四蜜臂| 国产精品调教| 98精品视频| 成人亚洲精品| 国内激情久久| 蜜臀av在线播放一区二区三区| 日韩精品第一| 国产成人久久精品麻豆二区| 久久久亚洲一区| 热久久免费视频| 日韩中文字幕一区二区高清99| 亚洲色图国产| 伊人成人网在线看| 老牛影视一区二区三区| 国产亚洲高清视频| 三级久久三级久久久| 国产精品欧美三级在线观看| 日韩在线欧美| 亚洲欧美网站在线观看| 成人国产精品久久| 亚洲在线电影| 久久超级碰碰| 欧洲毛片在线视频免费观看|