程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django中配置多個setting.py文件

編輯:Python

項目在開發環境和實際的生產環境中,settings.py配置文件通常是不一樣的,而且按照以往的開發經驗來看,項目開發完成後settings.py通常存放著一些用戶名與密碼,所以需要對這些隱私配置項進行單獨的配置。

修改settings文件路徑

setting.py的上級目錄創建一個Python package文件夾,直接新建文件夾也是ok的,不過要再新建一個__init__.py的聲明文件。

然後將原始的settings.py文件移動至settings文件夾內,修改文件名為base.py,即基礎設置(可以理解為開發環境和生產環境配置不變的項)。

此時如果直接使用python manage.py runserver命令會報錯,因為manage.py裡面定義了settings.py文件的默認路徑,需要在manage.py裡修改設置文件的路徑,我這裡是將meetingroom.settings 修改為 settings.base

def main():
# 將meetingroom.settings修改為settings.base
# os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meetingroom.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings.base')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)

此時開啟服務,就會默認調用settings文件夾下面的base.py的配置。

創建生產環境配置

settings文件夾下新建一個production.py文件,用於配置生產環境下的配置。

# production.py
from .base import *
# 通常使用nginx映射出去,所以只需要設置settings就行
ALLOWED_HOSTS = ['127.0.0.1']
DEBUG = False
# 更多請按需配置

此時運行python manage.py runserver --setting settings.production即可以生產環境的配置啟動服務。

密碼等隱私項配置

base.py中,將隱私項配置為None

...
LOCAL_TEST_USERNAME = None
LOCAL_TEST_PASSWORD = None
...

之後在本地配置文件local.py或其他配置文件中

from .base import *
TEST_USERNAME = 'hsinyan'
TEST_PASSWORD = 'root'

如此配置即可,可以避免測試環境的敏感信息洩露。


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