شرح بسيط للمبتدئين عن نماذج دجانغو (Django Models)

May 10, 2023 * تيتو 4 تك

يعد Django Framework واحدًا من أشهر إطارات العمل لتطبيقات الويب، والتي تتيح للمطورين إنشاء تطبيقات عالية الجودة وذات أداء عالي بشكل سهل وسريع. واحدًا من العناصر الرئيسية في Django هو Django Model، والذي يعد جزءًا أساسيًا من إطار العمل. سنتحدث في هذا المقال عن Django Models وما هي الفوائد التي يقدمها لمطوري التطبيقات.

 

 

مفهوم Django Models

يعتبر Django Model ببساطة جدولًا في قاعدة البيانات الخاصة بالتطبيق، حيث يتم تعريف حقول الجدول وعلاقاتها بالجداول الأخرى. وتتيح Django Models للمطورين إنشاء وتحديث وحذف البيانات في الجداول بشكل بسيط وسهل. بالإضافة إلى ذلك، يوفر Django Models العديد من الميزات المفيدة لمطوري التطبيقات.

أولاً، يوفر Django Models نظامًا قويًا للتحقق من البيانات، حيث يمكن للمطورين تحديد متطلبات الحقول مثل الحد الأقصى لعدد الأحرف والقيم الافتراضية والحد الأدنى وغير ذلك. وبذلك يتم ضمان أن تكون البيانات المدخلة دقيقة وصحيحة، وبالتالي تقليل احتمالية وجود أخطاء في البيانات.

ثانيًا، يمكن للمطورين استخدام Django Models لإنشاء علاقات بين الجداول في قاعدة البيانات، مما يتيح لهم إنشاء تطبيقات قوية وذات صلة واستخدام البيانات بشكل فعال. على سبيل المثال، يمكن لمطوري التطبيقات استخدام Django Models لإنشاء علاقات واحد إلى واحد، واحد إلى العديد، العديد إلى الع

ثالثاً، تساعد مكتبة Django Models المطورين على تحديد بيانات التطبيق في شكل كائني، والتعامل معها بشكل برمجي. يتيح هذا الأسلوب تخصيص قاعدة البيانات وتعريف العلاقات بسهولة، بما يؤدي إلى إنتاج تطبيقات متكاملة وقابلة للتوسع. تقوم Django Models بتحويل بيانات قاعدة البيانات إلى كائنات Python، ويمكن الوصول إليها بسهولة عن طريق مساعدة مكتبة ORM.

تعريف النموذج (Model)

يمثل النموذج (Model) في Django Models وحدة البيانات الأساسية، ويمكن تحديد الجدول باستخدام نموذج models.Model. يحتوي النموذج على مجموعة من الحقول (Fields) التي تمثل البيانات الفردية، ويمكن استخدامه لتعريف الجداول في قاعدة البيانات والتعامل معها بشكل برمجي. يمكن تحديد الحقول المختلفة باستخدام أنواع الحقول الخاصة بـ Django Models، مثل CharField و TextField و IntegerField و ForeignKey و ManyToManyField، وغيرها.

على سبيل المثال، يمكن تعريف الجدول "المؤلف" بما يلي:

 

from django.db import models

class Author(models.Model):
name = models.CharField(max_length=100)   
email = models.EmailField()   
bio = models.TextField()   

 

حيث يتكون الجدول من ثلاثة حقول، الاسم والبريد الإلكتروني والسيرة الذاتية، ويمكن الوصول إليها عن طريق مساعدة مكتبة ORM.

تعريف الجداول والحقول في Django models

يتم تحديد الجدول باستخدام نموذج models.Model، ويمكن تعريف الحقول المختلفة باستخدام أنواع الحقول الخاصة بـ Django models. يمكن تحديد الحقول العادية مثل CharField و TextField وحقول الأرقام مثل IntegerField و DecimalField وحقول الأشياء المرتبطة، مثل ForeignKey و ManyToManyField.

دعنا نلقي نظرة على مثال على تعريف جدول لـ "الأفلام" لتوضيح كيفية تعريف الجداول والحقول في Django models:

 

from django.db import models

class Genre(models.Model):
    name = models.CharField(max_length=100)

class Movie(models.Model):
    title = models.CharField(max_length=100)
    release_date = models.DateField()
genre = models.ForeignKey(Genre, on_delete=models.CASCADE)    

 

في هذا المثال، تم تحديد جدولين: Genre و Movie. الجدول Genre يتضمن الحقل name والذي يمكن استخدامه لتحديد نوع الفيلم (مثل الأكشن، الرعب، الدراما، إلخ). بينما يتضمن الجدول Movie الحقول title و release_date و genre. الحقل genre هو مثال على حقل ForeignKey الذي يستخدم لتحديد العلاقات بين الجداول.

حقول Django models

حقول Django models هي الأجزاء الأساسية لتعريف الجداول في قاعدة البيانات. تمثل هذه الحقول السمات المختلفة للجداول التي يتم تخزينها فيها. تشمل الحقول المختلفة مثل النصوص والأرقام والتواريخ والمراجع والمفاتيح الأجنبية وغيرها.

يمكن تعريف الحقول باستخدام Django models باستخدام الكائنات المعرفة مسبقًا، مثل CharField و TextField و IntegerField و DateField وغيرها. يتم تحديد نوع الحقل على أساس البيانات التي يتم تخزينها فيه. ويمكن أيضًا تحديد الخصائص الإضافية للحقل، مثل الحد الأقصى لعدد الأحرف أو الحد الأقصى للقيم الممكنة.

قائمة ببعض أنواع الحقول الأكثر استخدامًا في Django models:

  • CharField: يستخدم لتخزين النصوص القصيرة.
  • TextField: يستخدم لتخزين النصوص الطويلة.
  • IntegerField: يستخدم لتخزين الأرقام الصحيحة.
  • FloatField: يستخدم لتخزين الأرقام العشرية.
  • DateField: يستخدم لتخزين التواريخ.
  • DateTimeField: يستخدم لتخزين التواريخ والأوقات.
  • BooleanField: يستخدم لتخزين القيم الثنائية (صحيح / خاطئ).
  • ForeignKey: يستخدم لإنشاء علاقات مع جداول أخرى.
  • ManyToManyField: يستخدم لإنشاء علاقات "الكثير إلى الكثير" مع جداول أخرى.

إن تحديد نوع الحقل الصحيح وتحديد الخصائص الإضافية المناسبة له يلعب دورًا مهمًا في تحديد الطريقة التي يتم بها تخزين البيانات وتنظيمها وعرضها في واجهة المستخدم.

إضافةً إلى الأنواع الأساسية المذكورة سابقًا، توجد أيضًا العديد من الحقول الأخرى في Django models التي يمكن استخدامها وفقًا لاحتياجات التطبيق المحدد. وفيما يلي بعض الأمثلة على الحقول الأخرى المتاحة:

  • EmailField: يستخدم لتخزين عناوين البريد الإلكتروني.
  • URLField: يستخدم لتخزين الروابط الإلكترونية.
  • ImageField: يستخدم لتخزين الصور.
  • FileField: يستخدم لتخزين الملفات.
  • SlugField: يستخدم لتخزين السلاجات الفريدة والقابلة للقراءة.
  • BinaryField: يستخدم لتخزين البيانات الثنائية.

بالإضافة إلى الخصائص الأساسية التي يتم تحديدها لكل حقل، يمكن أيضًا تحديد خصائص إضافية لتحديد سلوك الحقل وتأثيره على الطريقة التي يتم بها تخزين واسترداد البيانات. وفيما يلي بعض الخصائص الإضافية التي يمكن تحديدها للحقول:

  • max_length: يحدد الحد الأقصى لعدد الأحرف التي يمكن تخزينها في الحقل.
  • null: يحدد ما إذا كان الحقل يسمح بالقيم الفارغة (null) أو لا.
  • blank: يحدد ما إذا كان الحقل يمكن أن يترك فارغًا أو لا.
  • default: يحدد القيمة الافتراضية للحقل إذا لم يتم تحديد قيمة له.
  • unique: يحدد ما إذا كان يجب أن يكون الحقل فريدًا أو لا.
  • choices: يحدد خيارات القيم الممكنة للحقل.

علاوة على ذلك، يمكن أيضًا تحديد خصائص مخصصة لتخصيص تحديد الحقول وسلوكها بشكل أكبر.

التسميات