الگوریتم اول

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

دستورات مربوط به مدل‌ها در جنگو

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

۱. python manage.py makemigrations

این دستور برای ایجاد مهاجرت‌ها (migrations) استفاده می‌شود. وقتی تغییراتی در مدل‌های پایتون ایجاد می‌کنید، باید مهاجرت‌ها را ایجاد کنید تا این تغییرات در پایگاه داده اعمال شوند.
مثال:

python manage.py makemigrations

این دستور تغییرات در مدل‌ها را شناسایی می‌کند و فایل‌های مهاجرت را تولید می‌کند.

۲. python manage.py migrate

دستور migrate برای اعمال تغییرات موجود در مهاجرت‌ها به پایگاه داده استفاده می‌شود. این دستور تغییرات ساختار جداول پایگاه داده را انجام می‌دهد.
مثال:

python manage.py migrate

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

۳. python manage.py showmigrations

این دستور برای نمایش لیست مهاجرت‌های موجود و وضعیت آن‌ها استفاده می‌شود (اینکه آیا اعمال شده‌اند یا نه).
مثال:

python manage.py showmigrations

این دستور تمامی مهاجرت‌های انجام‌شده و نشده را نمایش می‌دهد.

۴. python manage.py sqlmigrate <app_name> <migration_name>

این دستور برای نمایش SQL که توسط مهاجرت خاص در پایگاه داده اجرا می‌شود، استفاده می‌شود. می‌توانید این دستور را برای مشاهده کد SQL مرتبط با مهاجرت‌ها اجرا کنید.
مثال:

python manage.py sqlmigrate myapp 0001_initial

این دستور SQL که برای مهاجرت اولیه در اپلیکیشن myapp اجرا می‌شود را نشان می‌دهد.

۵. python manage.py flush

این دستور تمام داده‌ها و جداول پایگاه داده را حذف کرده و پایگاه داده را به حالت اولیه باز می‌گرداند (بدون داده).
مثال:

python manage.py flush

تمام داده‌های پایگاه داده حذف می‌شود و جداول به حالت اولیه (همانطور که در ابتدا تعریف شده‌اند) باز می‌گردند.

۶. استفاده از objects برای تعامل با مدل‌ها

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

الف. بازیابی داده‌ها

  • ()all: برای گرفتن تمام اشیاء از مدل. مثال:

    books = Book.objects.all()  # گرفتن تمام کتاب‌ها
  • ()filter: برای گرفتن اشیاء با شرایط خاص. مثال:

    books = Book.objects.filter(author="جان دو")  # کتاب‌های نوشته‌شده توسط جان دو
  • ()get: برای گرفتن یک شیء خاص. مثال:

    book = Book.objects.get(id=1)  # گرفتن کتاب با id برابر 1

ب. افزودن داده‌ها

برای اضافه کردن یک شیء جدید به مدل، می‌توانید از متد ()save استفاده کنید.
مثال:

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

ج. به‌روزرسانی داده‌ها

برای به‌روزرسانی داده‌ها، ابتدا شیء را بازیابی کرده و سپس آن را تغییر دهید و ذخیره کنید.
مثال:

book = Book.objects.get(id=1)  # پیدا کردن کتاب با id برابر 1
book.title = "عنوان جدید"  # تغییر عنوان
book.save()  # ذخیره تغییرات

د. حذف داده‌ها

برای حذف یک شیء، از متد ()delete استفاده کنید.
مثال:

book = Book.objects.get(id=1)  # پیدا کردن کتاب با id برابر 1
book.delete()  # حذف کتاب

۷. python manage.py shell

دستور shell به شما امکان می‌دهد که وارد محیط پویا پایتون شوید و به طور تعاملی با مدل‌ها و پایگاه داده کار کنید. این دستور مفید است وقتی می‌خواهید داده‌ها را به طور دستی وارد، تغییر یا حذف کنید.
مثال:

python manage.py shell

پس از وارد شدن به Shell، می‌توانید مدل‌ها را وارد کرده و با آن‌ها تعامل کنید:

from myapp.models import Book
book = Book.objects.all()
print(book)

نتیجه‌گیری

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