الگوریتم اول

لطفا صبر کنید...

ایجاد مدل‌ها با استفاده از کلاس‌های پایتون در جنگو

در جنگو، مدل‌ها با استفاده از کلاس‌های پایتون ایجاد می‌شوند. هر کلاس که از کلاس models.Model ارث‌بری کند، به عنوان یک مدل در جنگو شناخته می‌شود. این کلاس‌ها به طور خودکار به جداول پایگاه داده تبدیل می‌شوند.

در اینجا مراحل ایجاد یک مدل با استفاده از کلاس‌های پایتون در جنگو توضیح داده می‌شود.

ساختار کلی مدل‌ها با کلاس‌ها

برای ایجاد یک مدل جدید در جنگو، باید یک کلاس جدید تعریف کنید که از models.Model ارث‌بری کند. فیلدهای مختلف مدل به عنوان ویژگی‌های این کلاس تعریف می‌شوند. جنگو از نوع داده‌های مختلفی برای فیلدها استفاده می‌کند که هر کدام برای ذخیره اطلاعات خاصی طراحی شده‌اند.

نمونه مدل برای یک کتاب

در این مثال، مدل Book را ایجاد می‌کنیم که اطلاعات مربوط به یک کتاب را ذخیره می‌کند. مدل شامل فیلدهای عنوان، نویسنده، تاریخ انتشار و غیره است.

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)  # عنوان کتاب
    author = models.CharField(max_length=100)  # نویسنده کتاب
    published_date = models.DateField()  # تاریخ انتشار کتاب
    isbn = models.CharField(max_length=13, unique=True)  # شماره ISBN کتاب
    pages = models.IntegerField()  # تعداد صفحات کتاب
    available = models.BooleanField(default=True)  # وضعیت موجود بودن کتاب

    def __str__(self):
        return self.title

توضیح فیلدهای مدل

  • CharField(max_length=200): این فیلد برای ذخیره رشته‌هایی با حداکثر طول 200 کاراکتر است. معمولاً از این فیلد برای ذخیره اطلاعات کوتاه مثل عنوان یا نام‌ها استفاده می‌شود.
  • DateField(): این فیلد برای ذخیره تاریخ‌ها (یعنی سال، ماه و روز) استفاده می‌شود.
  • IntegerField(): برای ذخیره اعداد صحیح مانند تعداد صفحات.
  • BooleanField(default=True): این فیلد تنها دو مقدار صحیح یا غلط را ذخیره می‌کند و به طور پیش‌فرض مقدار آن True است.
  • unique=True: این ویژگی برای اطمینان از این است که مقدار این فیلد در پایگاه داده یکتا باشد، مثلاً شماره ISBN نباید تکراری باشد.
  • __str__(self): متد __str__ برای تعیین نحوه نمایش شیء مدل به کار می‌رود. در اینجا نام کتاب به عنوان رشته نمایشی برمی‌گردد.

اجرای مهاجرت‌ها (Migrations)

پس از تعریف مدل، باید مهاجرت‌ها را انجام دهیم تا مدل‌ها در پایگاه داده اعمال شوند. مراحل زیر را دنبال کنید:

  1. ایجاد مهاجرت‌ها:
python manage.py makemigrations
  1. اعمال مهاجرت‌ها در پایگاه داده:
python manage.py migrate

تعامل با مدل‌ها از طریق Shell جنگو

برای تعامل با مدل‌ها می‌توان از Shell جنگو استفاده کرد:

  1. ابتدا وارد Shell شوید:
python manage.py shell
  1. سپس مدل Book را وارد کرده و با آن تعامل کنید:
from myapp.models import Book

# ایجاد یک کتاب جدید
book = Book(title="جنگو برای مبتدیان", author="جان دو", published_date="2025-01-15", isbn="1234567890123", pages=300)
book.save()

# نمایش تمام کتاب‌ها
books = Book.objects.all()
print(books)

# پیدا کردن یک کتاب خاص بر اساس ID
book = Book.objects.get(id=1)
print(book.title)

مدیریت مدل‌ها در پنل ادمین جنگو

برای اینکه مدل‌ها در پنل ادمین جنگو قابل مشاهده و مدیریت باشند، باید مدل را در فایل admin.py ثبت کنید:

from django.contrib import admin
from .models import Book

admin.site.register(Book)

اکنون می‌توانید با ورود به http://127.0.0.1:8000/admin و با استفاده از پنل ادمین، داده‌های مربوط به مدل Book را مدیریت کنید.

نتیجه‌گیری

در جنگو، مدل‌ها به کمک کلاس‌های پایتون ایجاد می‌شوند و این کلاس‌ها از models.Model ارث‌بری می‌کنند. این ساختار به توسعه‌دهندگان این امکان را می‌دهد که با استفاده از کدهای پایتون ساده، مدل‌های پیچیده برای ذخیره‌سازی داده‌ها طراحی کنند و به راحتی با پایگاه داده تعامل داشته باشند.