python中运用django_【Django】在项目中使用python
將博客代碼提交到倉庫的時候,也許不經意間會將你不想泄漏的信息(比如數據庫url,密碼,密鑰,調試狀態,電子郵件主機,允許的主機等等)暴露。所以我們需要考慮,將我們的信息保存在安全的地方(比如直接保存在服務器上,而不是github)。
為了達到這個目的,我們將會用到一個模塊,python-decouple,它可以將代碼中的設置參數分離,保存在另外一個文件(這個文件就可以直接保存在服務器,而不提交到倉庫),我們將這個文件稱為環境文件。
###安裝
執行pip install python-decouple
###用法
打開settings.py,一般可以看到有如下代碼:
SECRET_KEY = '3izb^ryglj(bvrjb2_y1fZvcnbky#358_l6-nn#i8fkug4mmz!'
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'HELLO_DJANGO',
'USER': 'U_HELLO',
'PASSWORD': 'hA8(scA@!fg3*sc&xaGh&6%-l<._>
'HOST': '127.0.0.1',
'PORT': '',
}
}
首先我們在項目根目錄下(即和manage.py同一目錄)創建一個環境文件.env(或者.ini文件,具體參考文檔),保存如下內容
SECRET_KEY=3izb^ryglj(bvrjb2_y1fZvcnbky#358_l6-nn#i8fkug4mmz!
DEBUG=True
DB_NAME=HELLO_DJANGO
DB_USER=U_HELLO
DB_PASSWORD=hA8(scA@!fg3*sc&xaGh&6%-l<._>
DB_HOST=127.0.0.1
記得將.env添加到.gitignore,確保環境文件不會提交到倉庫。
修改settings.py,首先導入模塊
import os
#導入python-decouple模塊
from decouple import config
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', cast=bool)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD': config('DB_PASSWORD'),
'HOST': config('DB_HOST'),
'PORT': '',
}
}
####傳遞數據
先來看兩行代碼
DEBUG = config('DEBUG', cast=bool)
EMAIL_PORT = config('EMAIL_PORT', cast=int)
函數config()傳遞兩個參數,一個是傳遞值的變量名,一個是傳遞值的類型。通常來說,我們從文件讀取的數據會被保存為字符串,這時候,cast參數就派上用場了。在函數config(),cast參數可以指定讀取的數據的類型。看回上面第一行代碼,從環境文件讀取到的DEBUG的值被指定為布爾值了。
對于 ALLOWED_HOSTS
ALLOWED_HOSTS=.localhost, .herokuapp.com
我們可以指定其cast參數為
ALLOWED_HOSTS = config('ALLOWED_HOSTS', cast=lambda v: [s.strip() for s in v.split(',')])
這樣看起來很復雜,我們可以使用這個模塊自帶的Csv函數。
from decouple import config, Csv
ALLOWED_HOSTS = config('ALLOWED_HOSTS', cast=Csv())
####默認值
如果有一個值為定義在環境文件中(即在環境文件中沒有這個值),我們可以向config()傳遞一個額外的參數來指定默認值。
DEBUG = config('DEBUG', default=True, cast=bool)
####覆蓋
有些時候你想不通過環境文件改變參數,你可以覆蓋環境文件的變量。因為環境變量(os.environ)優先級高于環境文件變量:DEBUG=True python manage.py
注意,Decouple總是按此順序進行賦值:
環境變量;
環境文件:.ini或.env文件;
傳遞給配置的默認參數。
###將環境文件上傳到服務器
這里我們主要用到xshell,lrzsz。首先用xshell連接到服務器(具體百度下就知道了)。
然后執行命令yum install -y lrzsz進行lrzsz的安裝,接著執行sudo rz命令本地上傳文件到服務器,在彈出的文件選擇框選擇我們的環境文件即可。
如果需要下載服務器的文件,執行sz filename。
總結
以上是生活随笔為你收集整理的python中运用django_【Django】在项目中使用python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源中国部分源代码分享
- 下一篇: pycharm IDEA专业版2016.