Maison > développement back-end > Tutoriel Python > Mettre à jour la clé Django à l'aide de .env

Mettre à jour la clé Django à l'aide de .env

Susan Sarandon
Libérer: 2024-11-29 05:41:10
original
232 Les gens l'ont consulté

Update Django Key using .env

Laravel que je code habituellement a une commande qui met à jour la clé de cryptage dans le fichier .env. Pour être honnête, j'adore cette approche et je voulais reproduire mon projet Django.

Par conséquent, j'ai suivi ces étapes :

Étape 1 : Charger le fichier .env

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

Étape 2 : utilisez le fichier d'environnement SECRET_KEY :

Sur settings.py Faites :

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

if SECRET_KEY is None:
    raise RuntimeError("SECRET_KEY value is not defined upon .env file")
Copier après la connexion

Étape 3 Créez une commande qui met à jour le .env :

J'ai créé le script myapp/management/commands/mk_key.py avec ce qui suit (remplacez myapp par votre propre nom d'application) :

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")
Copier après la connexion

Ensuite, exécutez-le en tant que :

 python manage.py mk_key
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal