دستورات مربوط به مدلها در جنگو
در جنگو، برای تعامل با مدلها و پایگاه داده، مجموعهای از دستورات و امکانات از طریق خط فرمان جنگو و همچنین از طریق کد پایتون وجود دارد. این دستورات به شما امکان میدهند تا مدلها را ایجاد کنید، آنها را مهاجرت دهید، دادهها را وارد پایگاه داده کنید و از پایگاه داده اطلاعات بگیرید. در ادامه به مهمترین دستورات و عملکردهای مرتبط با مدلها پرداخته میشود.
۱. python manage.py makemigrations
این دستور برای ایجاد مهاجرتها (migrations) استفاده میشود. وقتی تغییراتی در مدلهای پایتون ایجاد میکنید، باید مهاجرتها را ایجاد کنید تا این تغییرات در پایگاه داده اعمال شوند.
مثال:
این دستور تغییرات در مدلها را شناسایی میکند و فایلهای مهاجرت را تولید میکند.
۲. python manage.py migrate
دستور migrate برای اعمال تغییرات موجود در مهاجرتها به پایگاه داده استفاده میشود. این دستور تغییرات ساختار جداول پایگاه داده را انجام میدهد.
مثال:
این دستور تمام مهاجرتها را اجرا کرده و ساختار پایگاه داده را به روز میکند.
۳. python manage.py showmigrations
این دستور برای نمایش لیست مهاجرتهای موجود و وضعیت آنها استفاده میشود (اینکه آیا اعمال شدهاند یا نه).
مثال:
این دستور تمامی مهاجرتهای انجامشده و نشده را نمایش میدهد.
۴. python manage.py sqlmigrate <app_name> <migration_name>
این دستور برای نمایش SQL که توسط مهاجرت خاص در پایگاه داده اجرا میشود، استفاده میشود. میتوانید این دستور را برای مشاهده کد SQL مرتبط با مهاجرتها اجرا کنید.
مثال:
این دستور SQL که برای مهاجرت اولیه در اپلیکیشن myapp اجرا میشود را نشان میدهد.
۵. 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.save() # ذخیره کتاب در پایگاه داده
ج. بهروزرسانی دادهها
برای بهروزرسانی دادهها، ابتدا شیء را بازیابی کرده و سپس آن را تغییر دهید و ذخیره کنید.
مثال:
book.title = "عنوان جدید" # تغییر عنوان
book.save() # ذخیره تغییرات
د. حذف دادهها
برای حذف یک شیء، از متد ()delete استفاده کنید.
مثال:
book.delete() # حذف کتاب
۷. python manage.py shell
دستور shell به شما امکان میدهد که وارد محیط پویا پایتون شوید و به طور تعاملی با مدلها و پایگاه داده کار کنید. این دستور مفید است وقتی میخواهید دادهها را به طور دستی وارد، تغییر یا حذف کنید.
مثال:
پس از وارد شدن به Shell، میتوانید مدلها را وارد کرده و با آنها تعامل کنید:
book = Book.objects.all()
print(book)
نتیجهگیری
دستورات جنگو در مدیریت مدلها به شما امکان میدهند که به راحتی مهاجرتها را ایجاد و اعمال کنید، دادهها را بازیابی و تغییر دهید، و همچنین به راحتی با پایگاه داده در محیط تعاملی کار کنید. این دستورات ابزار قدرتمندی برای توسعه و مدیریت برنامههای وب فراهم میکنند.
