Ich komme aus PHP und verwende hauptsächlich Laravel/Symfony. Vor kurzem habe ich angefangen, Django zu verwenden, und ich wollte die Art und Weise reproduzieren, wie Umgebungsvariablen über eine .env-Datei bereitgestellt werden.
Ich wollte, dass die .env-Datei geladen wird, sobald ich den Devserver starte, ohne dass ich mir darüber Gedanken machen muss. Deshalb habe ich diese Schritte befolgt:
Zu Beginn habe ich eine virtuelle Umgebung erstellt und ein Projekt eingerichtet.
mkdir myproject cd myproject python3 -m venv ./venv echo vencv >> .gitignore pip install Django django-admin startproject mysite .
pip install python-dotenv
Das Laden von Umgebungsvariablen aus einer .env-Datei ist mit python-dotenv einfach:
from dotenv import load_dotenv load_dotenv()
Die Frage ist jedoch, WO dieser Code abgelegt werden soll. Es kann mühsam sein, jedes Mal die .env-Datei zu laden. Basierend auf dem zuvor erwähnten Setup hat mein Projekt die folgende Struktur erstellt (einige Dateien wurden der Einfachheit halber weggelassen):
myproject/ ├── mysite/ │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── .env
Wie Sie sehen können, wird das mysite-Verzeichnis als Modul geladen. Alle Umgebungsvariablen werden in der .env-Datei gespeichert. Um sie zu laden, habe ich den Code zur Datei mysite/__init__.py hinzugefügt:
from dotenv import load_dotenv load_dotenv()
Dadurch wird sichergestellt, dass alle Umgebungsvariablen geladen werden, wenn ich Folgendes ausführe:
python manage.py runserver
Der Nachteil dieses Ansatzes besteht darin, dass ich, wenn ich Änderungen an der .env-Datei vornehme, den Server stoppen und neu starten muss, um die Umgebungsvariablen neu zu laden.
Das obige ist der detaillierte Inhalt vonSo laden Sie .env in Django Project. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!