Heim >Backend-Entwicklung >Python-Tutorial >Aktualisieren Sie den Django-Schlüssel mit .env

Aktualisieren Sie den Django-Schlüssel mit .env

Susan Sarandon
Susan SarandonOriginal
2024-11-29 05:41:10148Durchsuche

Update Django Key using .env

Laravel, das ich normalerweise codiere, verfügt über einen Befehl, der den Verschlüsselungsschlüssel in der .env-Datei aktualisiert. Um ehrlich zu sein, liebe ich diesen Ansatz und wollte ihn bei meinem Django-Projekt wiederholen.

Deshalb habe ich diese Schritte befolgt:

Schritt 1: Laden Sie die .env-Datei

Siehe: https://dev.to/pcmagas/how-to-load-env-in-django-project-4c9d

Schritt 2: Verwenden Sie die Env-Datei SECRET_KEY:

Unter „settings.py“ Folgendes tun:

SECRET_KEY = os.getenv('SECRET_KEY',None)

if SECRET_KEY is None:
    raise RuntimeError("SECRET_KEY value is not defined upon .env file")

Schritt 3 Erstellen Sie einen Befehl, der die .env aktualisiert:

Ich habe das Skript myapp/management/commands/mk_key.py mit Folgendem erstellt (ersetzen Sie myapp durch Ihren eigenen Anwendungsnamen):

from django.core.management.base import BaseCommand
from django.core.management.utils import get_random_secret_key
import os

class Command(BaseCommand):
    help = 'Create a new Secret Key'

    def handle(self, *args, **kwargs):

        key = get_random_secret_key()
        env_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',"..","..",'.env')
        self.updateDotenv(env_file_path,key)

    def updateDotenv(self,env_file_path,key):

        with open(env_file_path, 'r') as file:
            lines = file.readlines()

            # Update the SECRET_KEY line
        updated_lines = []

        for line in lines:
            if line.startswith('SECRET_KEY'):
                continue
            else:
                updated_lines.append(line)

        line = f"SECRET_KEY='{key}'\n"
        updated_lines.insert(0,line)  # Replace with new key

        # Write the updated lines back to the .env file
        with open(env_file_path, 'w') as file:
            file.writelines(updated_lines)

        # Output the new secret key
        self.stdout.write(f"Updated .env\n")

Dann führen Sie es aus als:

 python manage.py mk_key

Das obige ist der detaillierte Inhalt vonAktualisieren Sie den Django-Schlüssel mit .env. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn