✔️ کتاب Django for Professionals (جنگو برای حرفه ای ها)
▪️ راهنمای ساخت وب سایتهای حرفه ای با فریم ورک جنگو است. بین ساختن «برنامههای اسباب بازی» ساده که میتوانند به سرعت ایجاد شوند و استقرار یابند و آنچه که برای ساختن یک برنامه وب «آماده تولید» مناسب برای استفاده هزاران و یا حتی میلیونها کاربر لازم است فاصلهی زیادی وجود دارد. این کتاب به شما نشان میدهد که چگونه این فاصله را پر کنید.
#book #python #django
🔎 @teachify
🔎 instagram.com/teachify_ir
▪️ راهنمای ساخت وب سایتهای حرفه ای با فریم ورک جنگو است. بین ساختن «برنامههای اسباب بازی» ساده که میتوانند به سرعت ایجاد شوند و استقرار یابند و آنچه که برای ساختن یک برنامه وب «آماده تولید» مناسب برای استفاده هزاران و یا حتی میلیونها کاربر لازم است فاصلهی زیادی وجود دارد. این کتاب به شما نشان میدهد که چگونه این فاصله را پر کنید.
#book #python #django
🔎 @teachify
🔎 instagram.com/teachify_ir
❤3👍2👏1
✔️ آموزش استفاده از متد bulk_create در جنگو
اگر شما تعداد زیادی شیء برای ایجاد دارید و نمیخواهید با هر فراخوانی یک کوئری جدید به پایگاه داده بزنید، متد
فرض کنید یک مدل به نام
حالا میخواهیم چند دانشآموز را با استفاده از
با این کار، هر سه دانشآموز با یک کوئری به پایگاه داده اضافه میشوند! این روش به طور قابل توجهی سریعتر از ایجاد هر شیء به صورت جداگانه است.
#جنگو #Django #پایتون #bulk_create #پایگاه_داده #کدنویسی #آموزش
💻 @Teachify | برنامه نویسی
اگر شما تعداد زیادی شیء برای ایجاد دارید و نمیخواهید با هر فراخوانی یک کوئری جدید به پایگاه داده بزنید، متد
bulk_create
میتواند به شما کمک کند. این متد به شما اجازه میدهد تا چندین شیء را تنها با یک کوئری به پایگاه داده اضافه کنید، که این باعث افزایش سرعت و بهینهسازی عملکرد برنامه شما میشود.فرض کنید یک مدل به نام
Student
داریم:from django.db import models
class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField()
حالا میخواهیم چند دانشآموز را با استفاده از
bulk_create
اضافه کنیم:from .models import Student
# لیستی از اشیاء Student
students = [
Student(first_name="Ali", last_name="Ahmadi", age=12),
Student(first_name="Sara", last_name="Hosseini", age=11),
Student(first_name="Reza", last_name="Moradi", age=13),
]
# ایجاد تمام اشیاء با یک کوئری
Student.objects.bulk_create(students)
با این کار، هر سه دانشآموز با یک کوئری به پایگاه داده اضافه میشوند! این روش به طور قابل توجهی سریعتر از ایجاد هر شیء به صورت جداگانه است.
#جنگو #Django #پایتون #bulk_create #پایگاه_داده #کدنویسی #آموزش
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
✔️چگونه اطلاعات اضافی را در رابطههای ManyToMany جنگو ذخیره کنیم؟
در جنگو، روابط چند به چند بهصورت پیشفرض ساده هستند و تنها رابطه بین دو مدل را نگهداری میکنند. اما وقتی نیاز به ذخیره اطلاعات اضافی درباره این رابطه دارید (مثل تاریخ، وضعیت، یا توضیحات)، باید از ویژگی قدرتمند through استفاده کنید. بیایید با جزئیات این مفهوم را بررسی کنیم:
اگر بهصورت ساده از
در این حالت جنگو خودکار جدولی ایجاد میکند که تنها دو ستون دارد و شما نمیتوانید اطلاعات اضافه (مثل تاریخ انتشار یا نقش نویسنده) را ذخیره کنید.
| book_id | author_id |
وقتی نیاز دارید اطلاعات بیشتری در مورد رابطه ذخیره کنید، through به شما امکان میدهد یک مدل سفارشی برای جدول واسط بسازید. این مدل میتواند علاوه بر کلیدهای خارجی، فیلدهای اضافی هم داشته باشد.
فرض کنید میخواهید رابطه بین کتاب و نویسنده را ذخیره کنید و علاوه بر آن، تاریخ انتشار همکاری را نیز نگهدارید، کد شما به صورت تصویر پیوست شده خواهد بود.
ایجاد نویسنده و کتاب:
افزودن نویسنده به کتاب با اطلاعات اضافی:
حالا میتوانید اطلاعات رابطه را بخوانید:
#Django #Python
✅ @Teachify | برنامه نویسی
در جنگو، روابط چند به چند بهصورت پیشفرض ساده هستند و تنها رابطه بین دو مدل را نگهداری میکنند. اما وقتی نیاز به ذخیره اطلاعات اضافی درباره این رابطه دارید (مثل تاریخ، وضعیت، یا توضیحات)، باید از ویژگی قدرتمند through استفاده کنید. بیایید با جزئیات این مفهوم را بررسی کنیم:
اگر بهصورت ساده از
ManyToManyField
استفاده کنید، جنگو خودش یک جدول واسط (Intermediate Table) برای مدیریت رابطه بین دو مدل ایجاد میکند که در تصویر مدل BookAuthor میباشد.در این حالت جنگو خودکار جدولی ایجاد میکند که تنها دو ستون دارد و شما نمیتوانید اطلاعات اضافه (مثل تاریخ انتشار یا نقش نویسنده) را ذخیره کنید.
| book_id | author_id |
وقتی نیاز دارید اطلاعات بیشتری در مورد رابطه ذخیره کنید، through به شما امکان میدهد یک مدل سفارشی برای جدول واسط بسازید. این مدل میتواند علاوه بر کلیدهای خارجی، فیلدهای اضافی هم داشته باشد.
فرض کنید میخواهید رابطه بین کتاب و نویسنده را ذخیره کنید و علاوه بر آن، تاریخ انتشار همکاری را نیز نگهدارید، کد شما به صورت تصویر پیوست شده خواهد بود.
ایجاد نویسنده و کتاب:
author = Author.objects.create(name="John Doe")
book = Book.objects.create(title="Python for Beginners")
افزودن نویسنده به کتاب با اطلاعات اضافی:
BookAuthor.objects.create(book=book, author=author, publication_date="2024-01-01")
حالا میتوانید اطلاعات رابطه را بخوانید:
relations = BookAuthor.objects.all()
for relation in relations:
print(f"{relation.author.name} wrote '{relation.book.title}' on {relation.publication_date}")
#Django #Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
✔️ جنگو 5.2 منتشر شد!
نسخهی جدید جنگو (Django 5.2) با ویژگیهای زیر منتشر شد:
+ ایمپورت خودکار مدلها در شل
+ پشتیبانی از کلیدهای اصلی ترکیبی (Composite Primary Keys) 😲
+ بهبود در نحوهی override کردن BoundField
این نسخه LTS (پشتیبانی طولانیمدت) است و تا آوریل 2028 پشتیبانی خواهد شد.
Django 5.2 Release Notes
#Django #Python
✅ @Teachify | برنامه نویسی
نسخهی جدید جنگو (Django 5.2) با ویژگیهای زیر منتشر شد:
+ ایمپورت خودکار مدلها در شل
+ پشتیبانی از کلیدهای اصلی ترکیبی (Composite Primary Keys) 😲
+ بهبود در نحوهی override کردن BoundField
این نسخه LTS (پشتیبانی طولانیمدت) است و تا آوریل 2028 پشتیبانی خواهد شد.
Django 5.2 Release Notes
#Django #Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👌13👍5❤🔥3❤1