程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Python的Django框架中settings文件的部署建議

Python的Django框架中settings文件的部署建議

編輯:更多關於編程

      這篇文章主要介紹了Python的Django框架中settings文件的部署建議,包括對local_settings的弊病的一些簡單分析,需要的朋友可以參考下

      django在一個項目的目錄結構劃分方面缺乏必要的規范,因此不同人的項目組織形式也千奇百怪,而且也很難說誰的做法就比較好。我根據自己的項目組織習慣,發布了一個項目dj-scaffold。

      前些天在reddit上為我的項目dj-scaffold打了個“廣告”(見:http://redd.it/kw5d4)。不想評價甚糟,甚至差點被打成負分。其中更也人將這個項目說的一文不值。面對負面聲音雖然會有些不爽,但其中的建設性意見還是需要聽取的,至於那些純屬個人偏好部分就自動過濾了。

      在談及settings文件如何組織時,coderanger建議參考The Best (and Worst) of Django中的做法。文中的主要觀點是開發環境和生產環境的配置都需要放到VCS中進行版本控制。參考文中的做法,我對settings模塊做了部分調整。注:代碼 https://github.com/vicalloy/dj-scaffold/tree/master/dj_scaffold/conf/prj/sites/settings

      local_settings的弊病

      為將項目的默認配置和本地配置區分開,最常用的做法是增加一個local_settings.py文件,並在settings文件的最後對該文件進行import。

      ?

    1 2 3 4 try: from local_settings import * except: pass

      由此引發的問題是你不能對local_settings.py進行版本控制,部署環境的配置萬一丟失將難以找回。

      解決方案

      針對該問題,建議的解決方案如下

      合理的配置文件組織方式

      復制代碼 代碼如下:

      |~settings/

      | |-__init__.py

      | |-base.py #默認配置信息

      | |-dev.py #開發環境的配置

      | |-local.sample #本地的擴展配置在dev和production的最後進行import

      | |-pre.sample #設置當前使用的配置為生產環境還是開發環境

      | `-production.py #生產環境的配置

      使用方式

      ?

    1 <strong>DJANGO_SETTINGS_MODULE</strong>

      django的admin腳本提供了settings參數用於指定當前使用的配置文件

      ?

    1 django-admin.py shell --settings=settings.dev

      在wsgi腳本中則可直接設置需要使用的settings

      ?

    1 2 deploy.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = settings.production

      簡化參數

      當然,如果每次使用django-admin.py的時候都要帶上settings參數還是非常惱人,所以推薦的做法是在pre.py中配置自己所需要使用的配置文件。

      ?

    1 SETTINGS = 'production' #dev

     

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved