مقدمة
عند تطوير تطبيقات الويب باستخدام Python، يُعتبر Django واحدًا من أكثر الأطر شيوعًا. ومن أبرز ميزاته نظام رسم الخرائط العلائقية للكائنات (ORM) المدمج، الذي يسمح للمطورين بالتفاعل مع قواعد البيانات باستخدام دوال Python عالية المستوى بدلاً من كتابة استعلامات SQL الخام. هذا يُبسّط عملية التطوير ويجعل الكود أكثر قابلية للقراءة والصيانة.
يمثل Django ORM أداة قوية للتعامل مع البيانات، حيث يُحوّل كود Python تلقائيًا إلى استعلامات SQL، مع توفير الحماية من هجمات حقن SQL والتوافق مع مختلف أنظمة إدارة قواعد البيانات.
ما هو ORM وكيف يعمل Django ORM
مبادئ رسم الخرائط العلائقية للكائنات
رسم الخرائط العلائقية للكائنات (ORM) هي تقنية تربط قواعد البيانات بمفاهيم لغات البرمجة الكائنية مثل Python. تسمح ORM للمطورين بالعمل مع قاعدة البيانات باستخدام الكائنات والكلاسات والدوال، مما يجعل التفاعل مع البيانات أكثر سهولة وطبيعية.
المبادئ الأساسية لـ ORM تشمل:
- التجريد من نظام إدارة قواعد البيانات المحدد
- الإدارة التلقائية للاتصالات بقاعدة البيانات
- الحماية من هجمات حقن SQL
- دعم المعاملات (Transactions)
- التخزين المؤقت للاستعلامات
Django ORM كحلقة وصل بين Python و SQL
يقوم Django ORM تلقائيًا بتحويل الاستعلامات المكتوبة بلغة Python إلى استعلامات SQL مناسبة يتم تنفيذها في قاعدة البيانات. هذا يسمح للمطورين بالتركيز على منطق التطبيق دون القلق بشأن تفاصيل التفاعل مع قاعدة البيانات.
مزايا Django ORM:
- سهولة الاستخدام والتعلم
- التوليد التلقائي لاستعلامات SQL
- دعم ترحيل مخطط قاعدة البيانات
- التحقق المدمج من صحة البيانات
- التكامل مع لوحة تحكم Django الإدارية
المكونات الأساسية لـ Django ORM
النماذج (Models): تُحدد بنية البيانات على شكل كلاسات Python، حيث يمثل كل كلاس جدولًا في قاعدة البيانات.
المديرون (Managers): يُوفّرون واجهة لتنفيذ الاستعلامات على قاعدة البيانات من خلال دوال النموذج.
مجموعات الاستعلام (QuerySets): تمثل مجموعات من البيانات المسترجعة من قاعدة البيانات، وتدعم التصفية والترتيب والعمليات الأخرى.
الترحيلات (Migrations): نظام لإدارة إصدارات مخطط قاعدة البيانات، يتيح تتبع التغييرات في بنية البيانات.
هندسة Django ORM
نمط السجل النشط (Active Record)
يستخدم Django ORM نمط السجل النشط، حيث يمثل كل نموذج بنية البيانات وطرق التعامل معها.这意味着 أن كائنات النموذج تحتوي على البيانات ومنطق الحفظ والتحديث والحذف.
التقييم الكسول (Lazy Loading)
تستخدم QuerySet في Django ORM التقييم الكسول، أي أن استعلام SQL يُنفّذ فقط عند الحاجة الفعلية للبيانات. هذا يُحسّن الأداء ويسمح ببناء استعلامات معقدة على مراحل.
نظام الترحيل
يتضمن Django ORM نظام ترحيل قوي يتيح إدارة إصدارات التغييرات في مخطط قاعدة البيانات وتطبيقها تلقائيًا في بيئات التطوير المختلفة.
التثبيت والإعداد
تثبيت Django
للبدء مع Django ORM، يجب تثبيت Django وإنشاء مشروع جديد:
pip install django
django-admin startproject myproject
cd myproject
إنشاء تطبيق
بعد ذلك، قم بإنشاء تطبيق داخل المشروع:
python manage.py startapp myapp
إعداد قاعدة البيانات
في ملف settings.py، قم بإعداد الاتصال بقاعدة البيانات:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}