Menelusuri asal-usul Flask dari lelucon April Fools "Pocoo" karya Armin Ronacher tahun 2010 hingga menjadi micro-framework WSGI paling populer di Python, memahami filosofi "tidak opinionated" di atas Werkzeug dan Jinja2, serta mengapa versi 3.1.3 tetap relevan di 2026.

Setelah di episode 0 kita menyiapkan environment — memastikan Python 3.12/3.13 dan Flask 3.1.x terinstall — pada episode ini kita menarik napas sejenak dan memahami mengapa Flask ada. Sejarah sebuah framework mungkin terasa tidak penting, padahal di sanalah letak alasan desainnya: mengapa Flask sekecil itu, mengapa ia "tidak memaksa apa pun", dan mengapa ia masih bertahan di 2026.
Mengapa harus memahami sejarah Flask? Karena keputusan desain Flask lahir dari reaksi terhadap framework yang terlalu mengatur — di era di mana Django mendominasi dengan baterai lengkap. Memahami latar belakang ini akan menjelaskan mengapa kalian bebas memilih ORM, database, dan mekanisme auth sendiri — dan kapan kebebasan itu menjadi kekuatan atau justru beban.
Flask dibuat oleh Armin Ronacher dan dirilis pertama kali pada 1 April 2010 — tanggal April Fools. Awalnya proyek ini adalah lelucon internal komunitas Pocoo (komunitas Python berbahasa Jerman di sekitar Ronacher), yang muncul dari rasa frustrasi terhadap kerangka kerja yang ada saat itu. Ironisnya, lelucon itu berkembang menjadi salah satu framework web Python paling populer di dunia.
| Fakta | Detail |
|---|---|
| Penulis | Armin Ronacher (Pocoo, Pallets) |
| Rilis pertama | 1 April 2010 |
| Asal nama | Menggantung di kait (hooked) — lelucon atas framework lain |
| Fondasi | Werkzeug (WSGI) + Jinja2 (templating) |
| Pengelolaan | Pallets Projects |
Nama "Flask" terinspirasi kata Inggris flask — wadah kimia — yang bermain dengan gagasan "hooked" (terkait dengan flask hook) sekaligus merendahkan diri terhadap framework "berat" lain. Detail kecil yang khas dari filosofi komunitas Pocoo: teknis, jenaka, dan tidak sok serius.
Inti dari Flask adalah tiga kata: "tidak opinionated" (tidak memaksa pilihan). Berbeda dengan Django yang membundel ORM, admin, auth, dan templating sekaligus, Flask hanya menyediakan lapisan tipis:
| Komponen | Peran di Flask |
|---|---|
| Werkzeug | WSGI toolkit: routing, request/response object, debugger interaktif |
| Jinja2 | Templating engine: template, inheritance, filters |
| Itsdangerous | Signing data: session cookie, token aman |
| Flask inti | Perekat: app.route, request context, error handling |
Artinya, kalian yang memilih database (SQLAlchemy atau raw sqlite3), auth (Flask-Login, JWT, atau OAuth), dan struktur proyek sendiri. Analoginya: Django ibarat rumah turnkey — masuk dan langsung tinggal; Flask ibarat rumah yang menyerahkan semua pemilihan furnitur — mulai dari dinding kosong, tetapi setiap sudutnya kalian yang menentukan.
Note
"Tidak opinionated" adalah fitur sekaligus tanggung jawab: bebas memilih memang nyaman, tetapi kalian harus paham apa yang dipilih. Inilah mengapa series ini menuntun kalian ke setiap keputusan — ORM, auth, deployment — satu per satu, bukan menyembunyikannya di balik abstraksi.
Tahun 2026, setelah lebih dari 15 tahun, Flask masih menjadi pilihan utama untuk web app dan API Python. Beberapa alasannya:
app.py sudah cukup untuk aplikasi berjalan; cocok untuk prototyping cepat dan small apps.Perbandingan cepat dengan pesaing utama:
| Framework | Pendekatan | Kekuatan |
|---|---|---|
| Flask | Micro, WSGI, sync | Minimalis, kontrol penuh, ekosistem extension |
| Django | Batteries-included, WSGI, sync | Fitur lengkap, admin, ORM kuat |
| FastAPI | Modern, ASGI, async-native | Async, OpenAPI otomatis, type-driven |
Kita bedah perbandingan lengkap Flask vs Django vs FastAPI di episode 25.
Flask 3.1.3, dirilis 19 Februari 2026, adalah versi yang dipakai di series ini. Yang perlu kalian tahu tentang lini 3.1.x:
MAX_FORM_MEMORY_SIZE dan MAX_FORM_PARTS untuk membatasi besar data form, serta max_content_length per-request — kontrol yang penting untuk mencegah serangan DoS (kita bahas di episode 17).Flask 3.1.3 bukan rilis "wow feature", melainkan rilis pemeliharaan dan keamanan — justru itu kabar baik: framework yang sudah stabil berarti kode kalian tidak cepat usang.
Panduan praktis memilih Flask sebagai fondasi aplikasi:
Sebaliknya, pertimbangkan framework lain saat: butuh admin panel, auth, dan ORM yang terintegrasi langsung (Django); atau butuh async dengan high-concurrency secara native (FastAPI/Quart). Biasanya kebutuhan itu baru terasa setelah proyek tumbuh — bukan di hari pertama.
| Tahun | Tonggak |
|---|---|
| 2010-04 | Rilis pertama Flask (April Fools, proyek Pocoo) |
| 2012-2015 | Flask 0.x — ekosistem extension mulai terbentuk |
| 2016 | Flask 0.12 — populer untuk small apps dan prototyping |
| 2018 | Flask 1.0 — API stabil pertama, CLI flask diperkenalkan |
| 2021-2023 | Flask 2.x — dukungan async view, blueprints matang |
| 2024-11 | Flask 3.0 — Python 3.8 dihapus, Werkzeug 3.0 |
| 2026-02-19 | Flask 3.1.3 — versi stabil terbaru, dipakai di series ini |
Pada episode 1 ini, kalian telah menelusuri perjalanan Flask dari lelucon April Fools hingga menjadi framework WSGI paling populer di Python.
Inti yang harus dibawa pulang:
Di episode 2 selanjutnya, kita akan membedah arsitektur dan konsep inti Flask — bagaimana WSGI menghubungkan Flask dengan server, application factory pattern, request context vs application context, blueprints, g/current_app, dan before/after_request hooks. Sampai jumpa di episode 2!