يمكن حل مشكلة الأمان والحفاظ على كلمات المرور من خلال وضع ملف .env في مجلد المشروع الذي تعملين عليه ,هذا الملف يكون له صلاحية القراءة و الكتابة فقط من قبل الشخص الذي يحمل منصب admin و فقط يستطيع التطبيق القراءة منه خلال مرحلة التشغيل وهذا الملف يحوي الاسم الخاص database وكلمة السر الخاصة database والبريد الالكتروني الخاص بالموقع وكلمة السر الخاص به ويكون بالشكل
#env
SECRET_KEY=
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
DATABASE_PORT=
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
GITHUB_ID=
GITHUB_SECRET=
ADMIN_NAME=
ADMIN_EMAIL=
بعد ذلك يمكنك قراءة هذه القيم في ملف settings.py باستخدام مكتبة dotenv عبر استخدام الاسطر التالية من الكود
from dotenv import load_dotenv
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
load_dotenv(os.path.join(BASE_DIR,".env"))
حيث يتم قراءة كل سطر في ملف env, ويتم الحصول على هذه القيمة باستخدام getenv حيث يفضل وضع القيمة في متحول من نفس الاسم الموجود في ملف env يوضح الكود التالي قراءة اسم المستخدم وكلمة السر عبر الدالة المذكورة, طبعا نضع هذه الاكواد في ملف settings.py
#settings.py
EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD')
هذا الحل بالكامل سوف يساهم في أمان موقع الويب الذي نقوم ببناءه باستخدام django ويعتبر افضل الممارسات الحالية
بالنسبة للخطأ الموجود في الصورة يجب القيام بتقليل مستوى الامان في حساب البريد الالكتروني الخاص ب google و المستخدم في شيفرة الكود الخاص بك