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

Kemas kini Django Key menggunakan .env

Susan Sarandon
Lepaskan: 2024-11-29 05:41:10
asal
205 orang telah melayarinya

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")
Salin selepas log masuk

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")
Salin selepas log masuk

Kemudian jalankannya sebagai:

 python manage.py mk_key
Salin selepas log masuk

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

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan