Rumah >pembangunan bahagian belakang >Tutorial Python >Kemas kini Django Key menggunakan .env

Kemas kini Django Key menggunakan .env

Susan Sarandon
Susan Sarandonasal
2024-11-29 05:41:10232semak imbas

Update Django Key using .env

Laravel yang biasanya saya kodkan mempunyai arahan yang mengemas kini kunci penyulitan pada fail .env. Sejujurnya, saya suka pendekatan ini dan saya mahu meniru projek django saya.

Oleh itu, saya mengikuti langkah ini:

Langkah 1: Muatkan fail .env

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

Langkah 2: Gunakan fail env SECRET_KEY:

Di settings.py Lakukan:

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

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

Langkah 3 Buat arahan yang mengemas kini .env:

Saya membuat skrip myapp/management/commands/mk_key.py dengan yang berikut (ganti myapp dengan nama aplikasi anda sendiri):

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")

Kemudian jalankannya sebagai:

 python manage.py mk_key

Atas ialah kandungan terperinci Kemas kini Django Key menggunakan .env. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn