
جنگو (Django) به عنوان یکی از قدرتمندترین، امنترین و مقیاسپذیرترین فریمورکهای وب مبتنی بر پایتون
این مقاله مجموعهای از تکنیکها و توصیههای مهم برای بهینهسازی دسترسی به دیتابیس در Django را ارائه میدهد. از پروفایلکردن کوئریها و استفاده از ابزارهایی مانند explain() و django-debug-toolbar، تا درک رفتار QuerySet، استفاده از iterator()، انجام پردازش در دیتابیس بهجای Python، و بهرهگیری از RawSQL یا SQL خام. این راهنما به شما کمک میکند کوئریهای سریعتر، کمهزینهتر و بهینهتر بنویسید.
این مقاله نحوهٔ استفاده از قابلیت Database Instrumentation در Django را توضیح میدهد؛ قابلیتی که به شما اجازه میدهد اجرای کوئریها را کنترل، ثبت، محدود یا تحلیل کنید. با استفاده از execute_wrapper میتوان رفتار اجرای کوئریها را تغییر داد، آنها را لاگ کرد، مدت زمانشان را اندازه گرفت یا حتی اجرای کوئری را مسدود کرد. این مقاله ساختار wrapperها، پارامترهای ورودی، مثالهای عملی و کاربردهای رایج را پوشش میدهد.
این مقاله مفهوم Fixture در Django را توضیح میدهد و نحوهٔ ایجاد، بارگذاری، محل جستجو، ترتیب بارگذاری، رفتار سیگنالها، استفاده از فایلهای فشرده، و مدیریت Fixtureهای مخصوص دیتابیس را بررسی میکند. Fixtures ابزاری قدرتمند برای بارگذاری دادههای اولیه، دادههای تست و دادههای قابل حمل در پروژههای Django هستند.
این مقاله نحوهٔ تعریف و استفاده از رابطههای چندبهچند در Django را توضیح میدهد. از ایجاد مدلها و افزودن دادهها، تا کوئریزدن، حذف، بهروزرسانی، استفاده از سمت معکوس رابطه، set و clear، و رفتار رابطهها هنگام حذف آبجکتها. تمام مثالها با API پایتونی Django ارائه شدهاند.
این مقاله نحوهٔ تعریف و کار با رابطههای چندبهیک در Django را توضیح میدهد. از ایجاد آبجکتها و دسترسی از هر دو سمت رابطه، تا جابهجایی رابطهها، کوئریزدن روی فیلدهای مرتبط، استفاده از لیست و queryset در فیلترها، کوئریهای حلقهای، و رفتار حذف (CASCADE). تمام مفاهیم با مثالهای واقعی از API پایتونی Django ارائه شدهاند.
این مقاله نحوهٔ تعریف و کار با رابطههای یکبهیک در Django را توضیح میدهد. از ایجاد آبجکتها و دسترسی از هر دو سمت رابطه، تا جابهجایی رابطه، کوئریزدن روی فیلدهای مرتبط، رفتار هنگام حذف (CASCADE)، و استفاده از رابطههای جانبی مانند Waiter. تمام مفاهیم با مثالهای واقعی از API پایتونی Django ارائه شدهاند.
این مقاله نحوهٔ کار URL dispatcher در Django را توضیح میدهد. از ساخت URLconf و نحوهٔ پردازش درخواستها، تا تعریف الگوهای URL، استفاده از path converters، و ساخت مبدلهای سفارشی. همچنین مثالهای عملی برای درک بهتر نحوهٔ مسیردهی در Django ارائه شده است.
این مقاله به بررسی نحوه کار ویوهای جنگو، شیوه پردازش درخواست و تولید پاسخ، روشهای بازگرداندن خطا با استفاده از HttpResponse و Http404، سفارشیسازی صفحات خطا، تست هندلرهای خطا و همچنین نوشتن ویوهای ناهمزمان در محیط ASGI میپردازد.
این مقاله به بررسی دکوراتورهای ویو در جنگو میپردازد؛ ابزارهایی که امکان کنترل روشهای مجاز HTTP، پردازش شرطی، فشردهسازی GZip، مدیریت هدرهای Vary، کنترل کش و سفارشیسازی رفتار CommonMiddleware را فراهم میکنند. این دکوراتورها به توسعهدهندگان کمک میکنند تا رفتار ویوها را دقیقتر و استانداردتر مدیریت کنند.
این مقاله نحوه پردازش آپلود فایلها در جنگو، ساختار request.FILES، روشهای ذخیرهسازی فایلها بهصورت دستی یا با مدلها، استفاده از chunks برای جلوگیری از مصرف زیاد حافظه، و پیادهسازی آپلود چندفایلی با فیلدها و ویجتهای سفارشی را توضیح میدهد.
این مقاله توابع میانبُر جنگو مانند render()، redirect()، resolve_url()، get_object_or_404() و get_list_or_404() را بررسی میکند. این توابع عملیات رایج ویوها مانند رندر قالب، ایجاد ریدایرکت، تبدیل ورودی به URL معتبر و واکشی ایمن آبجکتها را سادهتر کرده و کدنویسی را سریعتر و خواناتر میکنند.
این مقاله ساختار Middleware در جنگو، نحوه عملکرد آن در چرخه درخواست و پاسخ، روش فعالسازی، ترتیب اجرا، ساخت Middleware سفارشی، استفاده از متدهای ویژه مانند process_view، process_exception و process_template_response، و نکات مهم درباره پاسخهای استریمی را بررسی میکند.