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
201 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!

source:dev.to
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