برنامه نویسی

برنامه Django خود را شارژ کنید: استراتژی های بهینه سازی با کارایی بالا

جنگو قدرتمند است ، اما آیا برنامه شما با تمام توان در حال اجرا است؟

عملکرد آهسته می تواند به تجربه کاربر ، رتبه بندی سئو آسیب برساند و حتی هزینه شما را نیز هزینه کند.

این که آیا شما هزاران کاربر را اداره می کنید یا یک کاربرد پر ترافیک را مقیاس می دهید ، بهینه سازی Django برای کارآیی بسیار مهم است.

بیایید به استراتژی های اثبات شده شیرجه بزنیم تا برنامه Django شما سریع جلوه کند!

شرح تصویر

✅ چرا بهینه سازی Django اهمیت دارد

  1. وب سایت های سریعتر = تجربه بهتر کاربر و سئو.

  2. هزینه های سرور و بار پایگاه داده را کاهش می دهد.

  3. از مشکلات عملکرد به عنوان مقیاس برنامه شما جلوگیری می کند.

  4. به شما کمک می کند تا بدون خرابی ، ترافیک بالایی را انجام دهید.

🔥 1. نمایش داده های پایگاه داده را با ORM بهینه کنید

ORM Django قدرتمند است ، اما نمایش داده های ناکارآمد می تواند برنامه شما را کند کند. در اینجا نحوه رفع آنها آورده شده است:

🔹 استفاده کنید انتخاب شده_ وت prefetch_reted

اگر نظرات شما چندین نمایش داده شده برای اشیاء مرتبط ایجاد می کند ، Django می تواند آنها را بهینه کند:


# Without Optimization (Multiple Queries) 
posts = Post.objects.all() 
for post in posts: 
    print(post.author.name)  # Triggers a new query per post! 

# Optimized Query (Single Query) 
posts = Post.objects.select_related('author').all() 
for post in posts: 
    print(post.author.name)  # No extra queries 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 در مورد بهینه سازی پرس و جو بیشتر بدانید:

https://docs.djangoproject.com/en/stable/ref/models/querysets/#select–refrated

🔹 از مشکل پرس و جو N+1 جلوگیری کنید

یک اشتباه رایج ساختن سؤالات کوچک به جای یک پرس و جو بهینه شده است.


# Bad Practice: Multiple Queries 
comments = Comment.objects.all() 
for comment in comments: 
    print(comment.post.title)  # Each loop iteration triggers a DB query 

# Optimized: Fetch All Related Data 
comments = Comment.objects.select_related('post').all() 
for comment in comments: 
    print(comment.post.title)  # No extra queries 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

⚡ 2. نمایه سازی پایگاه داده را فعال کنید

افزودن شاخص ها به زمینه های متداول که به طور مکرر انجام می شود ، عملکرد را به میزان قابل توجهی افزایش می دهد.


from django.db import models 

class Product(models.Model): 
    name = models.CharField(max_length=255, db_index=True)  # Index for faster lookups 
    price = models.DecimalField(max_digits=10, decimal_places=2) 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 در مورد نمایه سازی Django بیاموزید:

https://docs.djangoproject.com/en/stable/ref/models/indexes/

🚀 3. برای سرعت بخشیدن به پاسخ ها از حافظه پنهان استفاده کنید

چرا هر بار که می توانید نتایج را ذخیره کنید ، پایگاه داده را پرس و جو کنید؟ Django چندین گزینه ذخیره سازی را ارائه می دهد:

🔹 حافظه نهان داخلی Django را فعال کنید

این را اضافه کنید Settings.py:


CACHES = { 
    'default': { 
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
        'LOCATION': '127.0.0.1:11211',  # Using Memcached 
    } 
} 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در مورد استراتژی های ذخیره سازی بیشتر بخوانید: https://docs.djangoproject.com/en/stable/topics/cache/

⚡ 4. پرونده های استاتیک و رسانه ای را بهینه کنید

خدمت به پرونده های استاتیک به طور موثر زمان بار را کاهش می دهد و UX را بهبود می بخشد.

🔹 از Whitenoise برای پرونده های استاتیک استفاده کنید

Whitenoise به Django اجازه می دهد تا بدون نیاز به Nginx یا Apache ، پرونده های استاتیک را مستقیماً ارائه دهند.

نصب آن:


pip install whitenoise 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اضافه کردن ظروف میانبر در Settings.py:


MIDDLEWARE = [ 
    'whitenoise.middleware.WhiteNoiseMiddleware', 
    ... 
] 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 اطلاعات بیشتر در مورد Whitenoise: https://whitenoise.evans.io/en/stable/

🔹 تصاویر را فشرده و بهینه کنید

برای تحویل بهتر رسانه ها از سنگرهای Django و CDN مانند CloudFlare یا AWS S3 استفاده کنید.

در مورد انبارهای Django بخوانید: https://django-storages.readthedocs.io/en/latest/

5 5. کارهای ناهمزمان را فعال کنید

برای کارهای پس زمینه (ایمیل ، اعلان ها و غیره) ، از کرفس برای جلوگیری از درخواست های آهسته استفاده کنید.

کرفس را نصب کنید:


pip install celery 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

کرفس را پیکربندی کنید در تنظیمات .py:


CELERY_BROKER_URL = 'redis://localhost:6379/0' 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 کرفس را برای کارهای پس زمینه بیاموزید: https://docs.celeryq.dev/en/stable/

🔥 6. برای درخواست های سریعتر از Gunicorn & Asgi استفاده کنید

Gunicorn یک سرور عالی WSGI برای اجرای برنامه های Django در تولید است.

نصب آن:


pip install gunicorn 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

django را با Gunicorn:


gunicorn myproject.wsgi:application --bind 0.0.0.0:8000 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

📌 درباره Gunicorn بیشتر بخوانید: https://docs.gunicorn.org/en/stable/

اگر برنامه شما به به روزرسانی در زمان واقعی نیاز دارد یا جوراب، تغییر دهید دژنگو با asgi با استفاده از دافنه.

📌 Djano & Asgi: https://docs.djangoproject.com/en/stable/howto/asgi/

7 🚀 7. بهینه سازی را بهینه کنید و برنامه های بلااستفاده را حذف کنید

حالت اشکال زدایی را در تولید غیرفعال کنید:


DEBUG = False 

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

فقط از میان افزار ضروری استفاده کنید:


MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

از بین بردن سرعت متوسط ​​غیر ضروری ، درخواست را به میزان قابل توجهی انجام می دهد.

📌 راهنمای میانی Django: https://docs.djangoproject.com/en/stable/ref/middleware/

💡 خلاصه: غذای اصلی

  1. نمایش داده های پایگاه داده را با SELECT_RELATED و نمایه سازی بهینه کنید.

  2. ذخیره سازی را برای کاهش نمایش داده های بانک اطلاعاتی اضافی فعال کنید.

  3. از Whitenoise & CDN برای کارآمد استفاده از پرونده های استاتیک/رسانه استفاده کنید.

  4. کارهای پس زمینه را به طور غیر همزمان با استفاده از کرفس اجرا کنید.

  5. با Gunicorn & ASGI برای برنامه های با کارایی بالا Django مستقر شوید.

💬 از چه ترفندهای عملکرد دیگری در Django استفاده می کنید؟

افکار خود را در نظرات رها کنید!

📢 با بینش های بیشتر توسعه وب به روز شوید!

🔔 دنبال کردن فناوری DCT برای بیشتر Django ، توسعه وب و نکات بهینه سازی عملکرد. 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا