النماذج وعمليات الترحيل
عرّف قاعدة البيانات ورحّلها
النماذج وعمليات الترحيل درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
نماذج Django
النموذج في Django هو فئة بلغة Python تحدد بنية جدول في قاعدة البيانات. وكل سمة فيه هي حقل. وتوجد النماذج في models.py الخاص بالتطبيق.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
print('Post model defined')أنواع الحقول
يوفر Django أنواعًا كثيرة من الحقول التي تطابق أنواع الأعمدة.
CharFieldللنصوص القصيرة (ويتطلبmax_length)TextFieldللنصوص الطويلةIntegerFieldوBooleanFieldوDateTimeField
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
views = models.IntegerField(default=0)
print('Fields map to columns')المفتاح الأساسي الضمني
يضيف Django تلقائيًا مفتاحًا أساسيًا id يتزايد تلقائيًا إلى كل نموذج، لذلك نادرًا ما تحتاجون إلى تعريفه بأنفسكم.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
# 'id' is added automatically
print('id field is automatic')خيارات الحقول
تقبل الحقول خيارات مثل default وnull وblank وunique للتحكم في السلوك والتحقق من صحة البيانات.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200, unique=True)
published = models.BooleanField(default=False)
subtitle = models.CharField(max_length=200, blank=True)
print('Options refine each field')التواريخ
يسجل DateTimeField(auto_now_add=True) وقت إنشاء الصف لأول مرة. ويحدّث auto_now=True القيمة عند كل عملية حفظ.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
print('Timestamps set automatically')العلاقات
اربطوا النماذج باستخدام ForeignKey لإنشاء علاقة واحد إلى متعدد. ويحدد on_delete ما يجب على Django فعله عند حذف الصف المشار إليه.
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Post(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
print('ForeignKey links Post to Author')ما هي عمليات الترحيل؟
عمليات الترحيل هي طريقة Django لتحويل تغييرات النماذج إلى تغييرات في مخطط قاعدة البيانات. وهي بمثابة التحكم في إصدارات قاعدة بياناتكم.
# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')makemigrations
يفحص الأمر python manage.py makemigrations نماذجكم وينشئ ملفات ترحيل تصف التغييرات.
# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')migrate
يطبّق الأمر python manage.py migrate عمليات الترحيل المعلّقة على قاعدة البيانات، فينشئ الجداول أو يعدّلها.
# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')سير عمل الترحيل
تسير الدورة كالتالي: عدّلوا models.py، ثم شغّلوا makemigrations، ثم شغّلوا migrate. كرروا ذلك كلما تغيّرت نماذجكم.
# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')الاستعلام عن النماذج
يحصل كل نموذج على مدير باسم objects لإجراء الاستعلامات: Post.objects.all() و.filter() و.get() و.create().
# Post.objects.all()
# Post.objects.filter(published=True)
# Post.objects.get(id=1)
# Post.objects.create(title='Hello')
print('objects is the query manager')اختبار سريع
اختبروا مدى معرفتكم بعمليات الترحيل.
مراجعة
عرّفتم النماذج وأجريتم عمليات ترحيلها.
- النماذج فئات في
models.pyتضم حقولًا ذات أنواع محددة - يضيف Django مفتاحًا أساسيًا
idتلقائيًا - يربط
ForeignKeyالنماذج؛ ويحددon_deleteسلوك الحذف التتابعي - تزامن
makemigrationsثمmigrateقاعدة البيانات - يستعلم
Model.objectsعن البيانات
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 76
- الدروس
- 320
الأسئلة الشائعة
هل درس «النماذج وعمليات الترحيل» مجاني؟
نعم — نص درس «النماذج وعمليات الترحيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «النماذج وعمليات الترحيل»؟
عرّف قاعدة البيانات ورحّلها تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «النماذج وعمليات الترحيل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المشروعات والتطبيقات
- النماذج وعمليات الترحيل
- واجهات العرض وعناوين URL
- لوحة إدارة Django