日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中运用django_【Django】在项目中使用python

發布時間:2024/1/8 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。