البرمجة

كيفية تخزين نتائج استعلامات API باستخدام Django Rest Framework

لكي تقوم بتخزين نتائج استعلامات API في Django Rest Framework، يمكنك استخدام تقنية التخزين المؤقت (Caching) بواسطة Memcached. يمكنك استخدام مكتبة DRF-extensions لهذا الغرض، ولكن إذا كنت تواجه مشكلة في تثبيتها بسبب حالة البناء (build status) على GitHub، يمكنك استخدام مكتبة أخرى مثل django-rest-framework-cacheops التي تقدم نفس الوظائف.

لتثبيت django-rest-framework-cacheops، يمكنك استخدام الأمر التالي:

bash
pip install django-rest-framework-cacheops

ثم يمكنك استخدامها في مشروعك كما يلي:

  1. قم بتحديد الاستعلامات التي ترغب في تخزينها باستخدام ديكوريتور @cached_as:
python
from rest_framework_cacheops import cached_as @cached_as(Product, timeout=60*60*24) class ProductListAPIView(generics.ListAPIView): def get_queryset(self): return Product.objects.all() serializer_class = ProductSerializer

في هذا المثال، تم تخزين نتائج استعلام Product.objects.all() لمدة يوم واحد (86400 ثانية).

  1. يجب تكوين الإعدادات الخاصة بالتخزين المؤقت في ملف الإعدادات settings.py:
python
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } }

هذا يفترض أنك تستخدم Memcached كمخزن مؤقت. قم بتعديل الإعدادات حسب احتياجاتك.

بعد تنفيذ هذه الخطوات، ستتمكن من تخزين نتائج استعلامات API للوصول إليها بشكل أسرع وأكثر كفاءة، وهذا مهم لتحسين أداء تطبيقك، خاصة إذا كان تطبيقك يعتمد بشكل كبير على القراءة من API.

المزيد من المعلومات

بالتأكيد! تقنية التخزين المؤقت (Caching) هي عملية تخزين نتائج استعلامات مكلفة (مثل استعلامات قواعد البيانات) لفترة زمنية محددة، بحيث يمكن إعادة استخدامها دون إجراء الاستعلام مرة أخرى. يساعد ذلك في تحسين أداء التطبيق عندما يكون هناك العديد من الطلبات للبيانات المتكررة.

تستخدم django-rest-framework-cacheops تعليمات SQL RAW مخصصة لتخزين نتائج الاستعلامات، مما يسمح بأداء أفضل من التخزين المؤقت العادي لـ Django. ومن أهم مزاياها:

  1. التكامل السهل: يمكنك استخدام django-rest-framework-cacheops بسهولة في Django Rest Framework دون الحاجة إلى تغييرات كبيرة في التطبيق.

  2. ضبط متقدم للتخزين المؤقت: يمكنك ضبط إعدادات التخزين المؤقت بشكل متقدم، مثل مدة التخزين وطرق التخزين.

  3. دعم للاستعلامات المعقدة: يمكنك تخزين نتائج استعلامات معقدة وحتى استعلامات ذاتية الارتباط (Self-referencing queries).

  4. القدرة على تعيين قواعد التخزين المؤقت لكل طريقة بناء النموذج: يمكنك تحديد مدة التخزين المؤقت لكل طريقة بناء النموذج على حدة.

  5. دعم لعمليات الحذف: تتيح لك العديد من الخيارات لتحديث التخزين المؤقت بناءً على الإجراءات التي تقوم بها على البيانات.

  6. إشارات (Signals): يمكنك استخدام إشارات Django لإعادة تحميل التخزين المؤقت بشكل تلقائي عندما تحدث تغييرات في البيانات.

مع تنفيذ خطوات التثبيت والتكوين الصحيحة، يمكنك الاستفادة من ميزات django-rest-framework-cacheops لتحسين أداء تطبيقك وتقليل الضغط على قاعدة البيانات، وهو أمر مهم لتجنب مشاكل الأداء في تطبيقك، خاصة إذا كانت عمليات القراءة تكثر على API الخاص بك.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!