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:
Lihat: https://dev.to/pcmagas/how-to-load-env-in-django-project-4c9d
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")
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!