python dotenv的詳細用法

2021-10-07 04:52:32 字數 2709 閱讀 4844

首先看一下github上專案的介紹:

reads the key,value pair from .env and adds them to environment variable.

大概意思就是在我們做專案時,我們可以把所有用到的環境變數寫到.env檔案裡,然後以k,v的方式讀取作為環境變數。

最簡單和最常見的用法是在應用程式啟動時呼叫load_dotenv,從當前目錄或其父目錄中的.env檔案或指定的路徑載入環境變數,然後你可以呼叫os.getenv提供的與環境相關的方法。

.env檔案內容差不多是這樣的:

# a comment that will be ignored.

redis_address=localhost:6379

meaning_of_life=42

multiline_var="hello\nworld"

你可以使用單詞export作為每行的字首,這將會使python-dotenv忽略該變數,但是你可以使用source命令執行該檔案。

python-dotenv可以用來修改posix系統的環境變數.

變數的值是下面列表中定義的第乙個值:

確保引用其他變數時用大括號{}包圍,就像$,因為像$home這樣的字串不會被認為是變數的引用。

config_path=$/.config/foo

domain=example.org

email=admin@$

debug=$

安裝
pip install -u python-dotenv

基本用法

確保你的專案目錄下 有.env檔案

.

├── .env

└── settings.py

然後你可以在settings.py中新增以下**:

# settings.py

from dotenv import load_dotenv, find_dotenv

from pathlib import path # python 3.6+ only

# 一、自動搜尋 .env 檔案

load_dotenv(verbose=

true

)# 二、與上面方式等價

load_dotenv(find_dotenv(

), verbose=

true

)# 三、或者指定 .env 檔案位置

env_path = path(

'.')

/'.env'

load_dotenv(dotenv_path=env_path, verbose=

true

)

通過load_dotenv,你就可以訪問像訪問系統環境變數一樣使用.env檔案中的變數了,比如通過os.genenv(key, default=none)

# settings.py

import os

secret_key = os.getenv(

"email"

)database_password = os.getenv(

"database_password"

)

引數

從流物件載入

從可讀的流物件中載入,記得把讀指標調到要開始讀取的位置。

>>

>

from io import stringio # python2: from stringio import stringio

>>

>

from dotenv import dotenv_values

>>

> filelike = stringio(

'spam=eggs\n'

)>>

> filelike.seek(0)

>>

> parsed = dotenv_values(stream=filelike)

>>

> parsed[

'spam'

]'eggs'

注意:此時返回值是個字典

如果你在django中使用,請將以上**新增到wsgi.py或者manage.py.

載入擴充套件

%load_ext dotenv
載入 env檔案

%dotenv
或者指定乙個env檔案

%dotenv relative/or/absolute/path/to/.env
其他引數

%dotenv -o
%dotenv -v
與 fabric 配合使用

this的詳細用法!!

this用法如下 1.使用this來顯示地標識欄位的所有者 有點官方味道,看下例子就清楚了 class student 2.使用this來傳遞當前正在執行的物件的乙個引用 class student class help newstudent方法呼叫了help類的insert靜態方法,需要向inse...

this的詳細用法!!

this用法如下 1.使用this來顯示地標識欄位的所有者 有點官方味道,看下例子就清楚了 class student 2.使用this來傳遞當前正在執行的物件的乙個引用 class student class help newstudent方法呼叫了help類的insert靜態方法,需要向inse...

詳細解讀mysql 詳細解讀MySQL中的許可權

一 前言 很多文章中會說,資料庫的許可權按最小許可權為原則,這句話本身沒有錯,但是卻是一句空話。因為最小許可權,這個東西太抽象,很多時候你並弄不清楚具體他需要哪些許可權。現在很多mysql用著root賬戶在操作,並不是大家不知道用root許可權太大不安全,而是很多人並不知道該給予什麼樣的許可權既安全...