برنامه نویسی | Teachify
12.8K subscribers
956 photos
420 videos
231 files
637 links
برای موفق شدن 🌱 با این عبارت خداحافظی کن: "باشه فردا"🍃


Admin: @Yousef_Vafaei
Download Telegram
✔️ کتاب Django for Professionals (جنگو برای حرفه ای ها)

▪️ راهنمای ساخت وب سایت‌های حرفه ای با فریم ورک جنگو است. بین ساختن «برنامه‌های اسباب بازی» ساده که می‌توانند به سرعت ایجاد شوند و استقرار یابند و آنچه که برای ساختن یک برنامه وب «آماده تولید» مناسب برای استفاده هزاران و یا حتی میلیون‌ها کاربر لازم است فاصله‌ی زیادی وجود دارد. این کتاب به شما نشان می‌دهد که چگونه این فاصله را پر کنید.

#book #python #django
🔎 @teachify
🔎 instagram.com/teachify_ir
3👍2👏1
✔️ آموزش استفاده از متد bulk_create در جنگو

اگر شما تعداد زیادی شیء برای ایجاد دارید و نمی‌خواهید با هر فراخوانی یک کوئری جدید به پایگاه داده بزنید، متد 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 #پایگاه_داده #کدنویسی #آموزش

💻 @Teachify | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
✔️چگونه اطلاعات اضافی را در رابطه‌های ManyToMany جنگو ذخیره کنیم؟

در جنگو، روابط چند به چند به‌صورت پیش‌فرض ساده هستند و تنها رابطه بین دو مدل را نگهداری می‌کنند. اما وقتی نیاز به ذخیره اطلاعات اضافی درباره این رابطه دارید (مثل تاریخ، وضعیت، یا توضیحات)، باید از ویژگی قدرتمند 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
@Teachify | برنامه نویسی
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 | برنامه نویسی
Please open Telegram to view this post
VIEW IN TELEGRAM
👌13👍5❤‍🔥31