Batasi Request dengan Flask-Limiter
Terapkan batas laju per rute dan global.
Batasi Request dengan Flask-Limiter adalah pelajaran Flask Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Flask Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Flask Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
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-LimiterIdentify 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_addressCreate 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!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Batasi Request dengan Flask-Limiter” gratis?
Ya — teks lengkap “Batasi Request dengan Flask-Limiter” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Flask Academy, upgrade ke CoddyKit PRO. Kursus Flask Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Batasi Request dengan Flask-Limiter”?
Terapkan batas laju per rute dan global. Kamu berlatih Flask Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Flask Academy?
Tidak diperlukan pengalaman sebelumnya. Flask Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Batasi Request dengan Flask-Limiter” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Flask Academy ini?
Ya. Setiap pelajaran Flask Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Batasi Request dengan Flask-Limiter
- Konfigurasikan CORS untuk Klien Peramban
- Header Keamanan dan HTTPS
- Validasi Input untuk Menghentikan Injeksi