我有 PHP 背景,主要使用 Laravel/Symfony。最近,我開始使用 Django,我想重現透過 .env 檔案提供環境變數的方式。
我希望在啟動開發伺服器後載入 .env,而不必擔心它。因此我按照以下步驟操作:
首先,我建立了一個虛擬環境,設定了一個專案。
mkdir myproject cd myproject python3 -m venv ./venv echo vencv >> .gitignore pip install Django django-admin startproject mysite .
pip install python-dotenv
使用 python-dotenv 從 .env 檔案載入環境變數很簡單:
from dotenv import load_dotenv load_dotenv()
問題是在哪裡放置此程式碼。每次載入 .env 檔案可能會很乏味。根據我之前提到的設置,我的專案創建了以下結構(為簡單起見,省略了一些文件):
myproject/ ├── mysite/ │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── .env
如您所見,mysite 目錄會作為模組載入。所有環境變數都儲存在 .env 檔案中。為了加載它們,我將程式碼新增至 mysite/__init__.py 檔案:
from dotenv import load_dotenv load_dotenv()
這確保了每當我運行時都會加載所有環境變數:
python manage.py runserver
這種方法的缺點是,如果我對 .env 檔案進行任何更改,我必須停止並重新啟動伺服器以重新載入環境變數。
以上是如何在 Django 專案中載入 .env的詳細內容。更多資訊請關注PHP中文網其他相關文章!