Python Academy · पाठ

मॉडल और माइग्रेशन

डेटाबेस परिभाषित और माइग्रेट करें

पाठ 2, कुल 4 में से13 चरण

मॉडल और माइग्रेशन, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 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')

माइग्रेशन क्या होते हैं?

माइग्रेशन मॉडल में किए गए बदलावों को डेटाबेस के schema में किए गए बदलावों में बदलने का 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 सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “मॉडल और माइग्रेशन” पाठ निःशुल्क है?

हाँ—“मॉडल और माइग्रेशन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मॉडल और माइग्रेशन” में मैं क्या सीखूँगा?

डेटाबेस परिभाषित और माइग्रेट करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“मॉडल और माइग्रेशन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रोजेक्ट और ऐप
  2. मॉडल और माइग्रेशन
  3. दृश्य और URL
  4. Django Admin
← Python Academy पर वापस जाएँ