مقدمة عن Django
Django هو إطار عمل ويب قوي ومفتوح المصدر، مكتوب بلغة بايثون. تم إنشاؤه في عام 2003 وتم إطلاقه لأول مرة في عام 2005. يتبع Django مبدأ "البطاريات مرفقة" (batteries included)، مما يعني أنه يحتوي على جميع المكونات اللازمة لبناء تطبيقات ويب متكاملة دون الحاجة إلى تثبيت حزم إضافية.
يعتمد الإطار على مبدأ "لا تكرر نفسك" (DRY — Don't Repeat Yourself) ويمنح المطورين أدوات قوية لإنشاء تطبيقات ويب آمنة وقابلة للتوسع بسرعة.
الهندسة المعمارية والميزات الرئيسية لـ Django
نمط MTV (Model-Template-View)
يستخدم Django نمط العمارة MTV، وهو تكيف للنمط الكلاسيكي MVC:
- Model — نموذج البيانات، الذي يحدد هيكل قاعدة البيانات
- Template — قالب لعرض البيانات للمستخدم
- View — العرض، الذي يحتوي على منطق الأعمال للتطبيق
رسم الخرائط العلائقية للكائنات (ORM)
يتيح لك Django ORM العمل مع قاعدة البيانات من خلال فئات بايثون بدلاً من كتابة استعلامات SQL. يوفر هذا:
- تجريداً من نظام إدارة قواعد البيانات المحدد
- أماناً من هجمات حقن SQL
- سهولة ترحيل مخطط قاعدة البيانات
- إمكانية استخدام قواعد بيانات مختلفة
لوحة الإدارة المدمجة
يقوم Django تلقائياً بإنشاء واجهة إدارة بناءً على نماذج البيانات. يتيح لك ذلك:
- إنشاء واجهات CRUD بسرعة
- إدارة المستخدمين وصلاحيات الوصول
- تنفيذ عمليات جماعية على البيانات
- تخصيص عرض البيانات وتصفيتها
نظام الأمان
يتضمن Django حماية مدمجة ضد الثغرات الأمنية الرئيسية:
- حماية CSRF — منع هجمات التزييف عبر المواقع
- حماية XSS — هروب البيانات تلقائياً في القوالب
- حقن SQL — استعلامات معلمة عبر ORM
- حماية Clickjacking — الحماية من اختطاف النقرات
- ملفات تعريف الارتباط الآمنة — Secure cookies
- تجزئة كلمات المرور — Password hashing
قابلية التوسع والأداء
يدعم Django طرقاً مختلفة للتحسين:
- التخزين المؤقت على مستويات مختلفة
- دعم CDN
- تحسين استعلامات قاعدة البيانات
- معالجة الطلبات غير المتزامنة (اعتباراً من الإصدار 3.1)
تثبيت وإعداد Django
تثبيت Django
لتثبيت Django، يُنصح باستخدام بيئة افتراضية:
# إنشاء بيئة افتراضية
python -m venv django_env
# تفعيل البيئة (في Windows)
django_env\Scripts\activate
# تفعيل البيئة (في macOS/Linux)
source django_env/bin/activate
# تثبيت Django
pip install django
إنشاء مشروع جديد
# إنشاء مشروع
django-admin startproject myproject
# الانتقال إلى دليل المشروع
cd myproject
# تشغيل خادم التطوير
python manage.py runserver
بعد تنفيذ الأوامر، سيكون التطبيق متاحاً على الرابط: http://127.0.0.1:8000/
هيكل مشروع Django
بعد إنشاء المشروع، ستحصل على الهيكل التالي:
myproject/
│
├── manage.py # واجهة سطر الأوامر
├── myproject/
│ ├── __init__.py # يجعل الدليل حزمة بايثون
│ ├── settings.py # إعدادات المشروع
│ ├── urls.py # المسارات الرئيسية للمشروع
│ ├── wsgi.py # نقطة الدخول لخوادم WSGI
│ └── asgi.py # نقطة الدخول لخوادم ASGI