Thuta Learning
ရှာဖွေရန်
IntermediateProgrammingbeginner

Django Models & ORM

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

🗄️ Lesson 52: Django Models & ORM (Database Handling in Depth)

1. Django Model ဆိုတာဘာလဲ?

မြန်မာ → Django Model ဆိုတာ database table ကို ကိုယ်စားပြုတဲ့ Python class တစ်ခု။ Model တစ်ခုရေးလိုက်တာနဲ့ Django ORM က database table တစ်ခုအဖြစ် ပြောင်းပေးမယ်။

English → A Django Model is a Python class that maps to a database table using Django's ORM.

2. Why Use ORM?

  • SQL query မရေးဘဲ Python code နဲ့ database ကို ကိုင်တွယ်နိုင်တယ်
  • Database independent → SQLite, PostgreSQL, MySQL တို့အတွက် တူညီ code သုံးနိုင်တယ်
  • Security → SQL injection ကာကွယ်ပေးတယ်

3. အကျဉ်းချုပ်

✅ Django Model = database table ကို ကိုယ်စားပြုတဲ့ Python class

✅ ORM → SQL မရေးဘဲ CRUD လုပ်နိုင်တယ်

✅ Migration → model changes ကို database ထဲ reflect လုပ်မယ်

✅ Admin panel → model data ကို GUI နဲ့ စီမံနိုင်မယ်

python
# ===== 1. Django Model Example =====
print("===== Model Definition =====")
print("# myapp/models.py")
print("from django.db import models")
print("")
print("class Task(models.Model):")
print("    title = models.CharField(max_length=100)")
print("    completed = models.BooleanField(default=False)")
print("")
print("    def __str__(self):")
print("        return self.title")

# ===== 2. Database Migration =====
print(f"\n===== Migration Commands =====")
print("# python manage.py makemigrations")
print("# python manage.py migrate")

# ===== 3. ORM Operations =====
print(f"\n===== ORM Operations (Django Shell) =====")
print("# python manage.py shell")
print("")
print("# Create")
print("task1 = Task(title='Learn Django', completed=False)")
print("task1.save()")
print("")
print("# Read")
print("tasks = Task.objects.all()")
print("# Returns: <QuerySet [<Task: Learn Django>]>")
print("")
print("# Filter")
print("done = Task.objects.filter(completed=True)")
print("")
print("# Update")
print("task1.completed = True")
print("task1.save()")
print("")
print("# Delete")
print("task1.delete()")

# ===== 4. Admin Panel Integration =====
print(f"\n===== Admin Panel =====")
print("# myapp/admin.py")
print("from django.contrib import admin")
print("from .models import Task")
print("")
print("admin.site.register(Task)")

# ===== 5. Real-World Use Cases =====
print(f"\n===== Use Cases =====")
print("✅ To-Do List → Task model")
print("✅ Blog → Post, Comment models")
print("✅ E-commerce → Product, Order, Customer models")
print("✅ Social Media → User, Post, Like models")
You should see
===== Model Definition ===== # myapp/models.py from django.db import models class Task(models.Model): title = models.CharField(max_length=100) completed = models.BooleanField(default=False) def __str__(self): return self.title ===== Migration Commands ===== # python manage.py makemigrations # python manage.py migrate ===== ORM Operations (Django Shell) ===== # python manage.py shell # Create task1 = Task(title='Learn Django', completed=False) task1.save() # Read tasks = Task.objects.all() # Returns: ]> # Filter done = Task.objects.filter(completed=True) # Update task1.completed = True task1.save() # Delete task1.delete() ===== Admin Panel ===== # myapp/admin.py from django.contrib import admin from .models import Task admin.site.register(Task) ===== Use Cases ===== ✅ To-Do List → Task model ✅ Blog → Post, Comment models ✅ E-commerce → Product, Order, Customer models ✅ Social Media → User, Post, Like models
Django Models & ORM | Thuta Learning