0Pricing
Django Academy · درس

متغيرات البيئة وتقسيم الإعدادات

فصل إعدادات التطوير والإنتاج بأمان

متغيرات البيئة وتقسيم الإعدادات درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

One Settings File Is Risky

A single settings.py with DEBUG on and secrets hardcoded is fine locally but dangerous live. Production needs its own safe configuration. 🔒

Dev and Prod Differ

Local and live environments need different settings: debug, allowed hosts, databases, and email all change between the two.

Why Environment Variables

Secrets like passwords must never sit in code or git. Environment variables inject them at runtime, keeping them out of your repository.

Read with os.environ

Pull a value from the environment with os.environ. Use a fallback so missing local variables do not crash development.

import os
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-only')

Load a .env File

Tools like python-dotenv load variables from a local .env file, so you do not export them by hand every session.

from dotenv import load_dotenv
load_dotenv()

Never Commit .env

Add .env to your .gitignore. Committing it would leak every secret, defeating the entire reason for using environment variables.

.env
*.pyc

The Settings Package

Split settings into a package: turn settings.py into a folder holding base, dev, and prod modules that share common config.

settings/
  __init__.py
  base.py
  dev.py
  prod.py

Share with base.py

Put everything common in base.py. The dev and prod files import from it, then override only what truly differs.

from .base import *
DEBUG = True

Lock Down prod.py

In prod.py keep DEBUG off and read SECRET_KEY plus ALLOWED_HOSTS from the environment, never from a literal in the file.

from .base import *
DEBUG = False
ALLOWED_HOSTS = os.environ['ALLOWED_HOSTS'].split(',')

Pick the Module

Choose which settings load with the DJANGO_SETTINGS_MODULE variable. Dev points to settings.dev while the server points to settings.prod.

export DJANGO_SETTINGS_MODULE=myproject.settings.prod

Typed Helpers Help

Libraries like django-environ parse env values into booleans, lists, and database URLs, so you avoid messy manual string conversions.

Quick Check

Where should your production SECRET_KEY come from?

Recap

You learned to split settings into base, dev, and prod, keep secrets in environment variables and .env, and select the module per environment. 🎯

الأسئلة الشائعة

هل درس «متغيرات البيئة وتقسيم الإعدادات» مجاني؟

نعم — نص درس «متغيرات البيئة وتقسيم الإعدادات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «متغيرات البيئة وتقسيم الإعدادات»؟

فصل إعدادات التطوير والإنتاج بأمان تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «متغيرات البيئة وتقسيم الإعدادات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. Gunicorn كخادم WSGI
  2. Nginx كوكيل عكسي
  3. WhiteNoise للملفات الثابتة
  4. متغيرات البيئة وتقسيم الإعدادات
← العودة إلى Django Academy