0Pricing
Flask Academy · درس

تقييد الطلبات باستخدام Flask-Limiter

طبّق حدود معدل الطلبات على مستوى المسار وعالميًا.

تقييد الطلبات باستخدام Flask-Limiter درس مجاني في Flask Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Flask Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Flask Academy 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Why Throttle At All

Without limits, one client can flood your API and starve everyone else. Rate limiting caps how often a caller may hit your routes.

Meet Flask-Limiter

The go-to tool is the Flask-Limiter extension. It watches incoming requests and rejects callers who go over their allowance.

Install It

You add it like any other extension with pip. One package gives you decorators and config for limiting traffic.

pip install Flask-Limiter

Identify the Caller

A limiter needs a key to count by. The usual choice is the client IP via the built-in get_remote_address helper.

from flask_limiter.util import get_remote_address

Create the Limiter

You build a Limiter and bind it to your app. The key function decides who each request counts against.

limiter = Limiter(get_remote_address, app=app)

Set a Default Limit

A default_limits list applies one cap to every route at once. It is your safety net for the whole app.

limiter = Limiter(get_remote_address, app=app,
    default_limits=["200 per day", "50 per hour"])

Per-Route Limits

Tighten a single endpoint with the @limiter.limit decorator. This route gets its own stricter rule.

@app.route("/login")
@limiter.limit("5 per minute")
def login():
    ...

Reading the Limit String

The string reads like plain English. 5 per minute means a caller may hit that route five times each minute.

"5 per minute"

What 429 Means

When a caller exceeds the cap, Flask-Limiter returns 429 Too Many Requests. It is the polite way to say slow down.

Exempt a Route

Some endpoints, like a health check, should never be throttled. Mark them with @limiter.exempt to skip all limits.

@app.route("/health")
@limiter.exempt
def health():
    return "ok"

Use a Shared Backend

In production you run many app processes, so counts must live in a shared storage_uri like Redis, not memory.

Limiter(get_remote_address, app=app,
    storage_uri="redis://localhost:6379")

Quick Check

Pick the status a throttled client receives.

Recap

You added Flask-Limiter, keyed limits by IP, set default and per-route caps, exempted health checks, and learned the 429 reply. Great job!

الأسئلة الشائعة

هل درس «تقييد الطلبات باستخدام Flask-Limiter» مجاني؟

نعم — نص درس «تقييد الطلبات باستخدام Flask-Limiter» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Flask Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Flask Academy 4 دروس في المجموع.

ماذا ستتعلم في «تقييد الطلبات باستخدام Flask-Limiter»؟

طبّق حدود معدل الطلبات على مستوى المسار وعالميًا. تتمرن على Flask Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Flask Academy؟

لا تُشترط خبرة سابقة. Flask Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تقييد الطلبات باستخدام Flask-Limiter»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Flask Academy هذا؟

نعم. كل درس في Flask Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تقييد الطلبات باستخدام Flask-Limiter
  2. ضبط CORS لعملاء المتصفح
  3. ترويسات الأمان وHTTPS
  4. التحقق من الإدخال لمنع الحقن
← العودة إلى Flask Academy