
دنیای زبانهای کدنویسی و توسعه نرمافزار
این مقاله نحوهٔ انجام عملیات تجمیع در Django ORM را توضیح میدهد: استفاده از aggregate() برای محاسبهٔ مقادیر کلی مانند میانگین و بیشینه، استفاده از annotate() برای افزودن مقادیر تجمیعی به هر آبجکت، مشکلات رایج هنگام ترکیب چند تجمیع، استفاده از distinct=True برای جلوگیری از نتایج اشتباه، و نحوهٔ بررسی SQL تولیدشده برای درک بهتر رفتار Query.
این مقاله روشهای مختلف جستجو در Django را بررسی میکند: از جستجوهای سادهٔ متنی با contains و icontains، تا استفاده از قابلیتهای پیشرفتهٔ دیتابیسها مانند unaccent و trigram در PostgreSQL. همچنین توضیح میدهد چرا جستجوی مبتنی بر متن برای دادههای بزرگ ناکارآمد است و چگونه میتوان از موتورهای جستجوی سندمحور یا Full‑Text Search داخلی PostgreSQL استفاده کرد.
این مقاله توضیح میدهد که Manager در Django چیست، چگونه میتوان نام آن را تغییر داد، چگونه یک Manager سفارشی ساخت، چگونه get_queryset را بازنویسی کرد، تفاوت بین مدیر پیشفرض و مدیر پایه چیست، چرا Django برای دسترسی به روابط از base manager استفاده میکند، و چگونه میتوان متدهای یک QuerySet سفارشی را از طریق Manager در دسترس قرار داد. Managerها نقطهٔ اصلی تعامل مدلها با پایگاه داده هستند و درک آنها برای نوشتن ORM تمیز و قدرتمند ضروری است.
این مقاله سه روش Django برای اجرای SQL خام را توضیح میدهد: استفاده از RawSQL در داخل QuerySet، استفاده از متد raw() برای بازگرداندن نمونههای مدل، و اجرای مستقیم SQL بدون لایهٔ مدل. همچنین نحوهٔ نگاشت فیلدها، پارامترگذاری امن، محدودیتها، deferred fields، و هشدارهای امنیتی مربوط به SQL injection بررسی میشود.
این مقاله نحوهٔ مدیریت تراکنشها در Django را توضیح میدهد: رفتار پیشفرض autocommit، استفاده از ATOMIC_REQUESTS برای تراکنشهای سطح درخواست، کنترل صریح تراکنشها با atomic، مدیریت خطاها، savepointها، نکات عملکردی، و دلیل استفادهٔ Django از autocommit. همچنین خطرات رایج مانند پنهانکردن استثناها داخل atomic و ناسازگاری وضعیت مدل پس از rollback بررسی میشود.
این مقاله نحوهٔ استفاده از چند دیتابیس در Django را توضیح میدهد: از تعریف دیتابیسها در تنظیمات، اجرای migrate روی دیتابیسهای مختلف، رفتار دستورات مدیریتی، تا مسیریابی خودکار کوئریها و پیادهسازی Database Routerها. همچنین نحوهٔ کنترل عملیات خواندن، نوشتن، روابط و مهاجرتها با استفاده از متدهای db_for_read، db_for_write، allow_relation و allow_migrate بررسی میشود.
این مقاله مفهوم Tablespace در Django را توضیح میدهد؛ اینکه چگونه میتوان محل ذخیرهسازی جداول و ایندکسها را کنترل کرد، چگونه از db_tablespace در مدلها و فیلدها استفاده میشود، نقش DEFAULT_TABLESPACE و DEFAULT_INDEX_TABLESPACE چیست، و کدام دیتابیسها از tablespace پشتیبانی میکنند. همچنین یک مثال کامل برای درک بهتر ارائه شده است.
این مقاله مجموعهای از تکنیکها و توصیههای مهم برای بهینهسازی دسترسی به دیتابیس در 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 ارائه شدهاند.