تخزين عرض مؤقتًا باستخدام cached
خزّن الاستجابات الكاملة مؤقتًا حسب URL.
تخزين عرض مؤقتًا باستخدام cached درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Caching Whole Responses
Some pages cost real work to build. The cached decorator stores the entire response, so repeat visitors get an instant copy.
Apply the Decorator
You add @cache.cached() right above your view function. The first request runs it; later ones replay the stored result.
@app.route("/report")
@cache.cached()
def report():
return build_report()Order of Decorators
Stacking matters. Put @app.route on top and @cache.cached below it, so routing happens before caching kicks in.
Set a Per-View Timeout
You can override the global setting per view. The timeout argument says how many seconds this specific response stays fresh.
@cache.cached(timeout=60)
def report():
...Cached by Request Path
By default the cache key is the request path. So /report and /report/extra are stored as separate, independent entries.
Query Strings Are Ignored
Watch out: the default key skips the query string. So /list?page=2 and /list?page=3 would share one cached entry.
Vary on the Full URL
To split by query string, set query_string=True. Now each unique URL, parameters included, gets its own cached response.
@cache.cached(query_string=True)
def listing():
...Custom Cache Keys
Need full control? Pass a make_cache_key function that builds the key yourself, for example mixing in the current user.
@cache.cached(make_cache_key=my_key)Only Cache Safe Methods
Cache GET requests, never POST. Caching a write would replay an old body and skip the side effects users expect.
Skip the Cache When Needed
Return unless a condition holds and the view runs fresh every time. Handy to bypass caching for logged-in users.
@cache.cached(unless=lambda: g.user)First Hit vs Later Hits
The first request is a cache miss and does the work. Every later request within the timeout is a fast cache hit.
Quick Check
Your list page uses ?page= but every page shows the same cached content.
Recap: View Caching
You learned to wrap views with @cache.cached, tune the timeout, key on the full URL, and skip caching for writes. 🚀
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «تخزين عرض مؤقتًا باستخدام cached» مجاني؟
نعم — نص درس «تخزين عرض مؤقتًا باستخدام cached» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.
ماذا ستتعلم في «تخزين عرض مؤقتًا باستخدام cached»؟
خزّن الاستجابات الكاملة مؤقتًا حسب URL. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟
لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تخزين عرض مؤقتًا باستخدام cached»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟
نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إعداد Flask-Caching
- تخزين عرض مؤقتًا باستخدام cached
- تخزين الدوال المكلفة مؤقتًا
- إبطال إدخالات ذاكرة التخزين المؤقت وانتهاؤها