Flask adalah kerangka kerja aplikasi web bersifat kerangka kerja mikro yang ditulis dalam bahasa pemrograman Python dan menggunakan dependensi Werkzeug dan Jinja2. Aplikasi yang menggunakan Flask antara lain adalah Pinterest, LinkedIn, dan halaman web komunitas situs Flask itu sendiri.[2][3][4]
Flask disebut kerangka kerja mikro karena tidak membutuhkan alat-alat tertentu atau pustaka.[5] Flask mendukung ekstensi yang dapat menambahkan fitur aplikasi seolah-olah mereka diimplementasikan dalam Flask itu sendiri.
Ekstensi yang ada seperti pemetaan objek-relasional, validasi form, penanganan unggahan, berbagai teknologi otentikasi terbuka, lapisan abstraksi basisdata, validasi form, atau komponen lain.[6]
Sejarah
Pada tahun 2004, Pocoo dibentuk sebagai sebuah kelompok penggemar Python internasional.[7] Armin Ronacher dari Pocoo pernah mengatakan kalau Flask dikembangkan secara tidak sengaja:
"Itu (Flask) berasal dari lelucon April Mop tapi terbukti cukup populer untuk membuat menjadi sebuah aplikasi serius dalam dirinya sendiri."[8][9][10]
Flask didasarkan pada Werkzeug dan Jinja2, keduanya adalah proyek-proyek Pocoo yang dibuat ketika Ronacher dan Georg Brandl sedang membangun sistem papan buletin yang ditulis dalam Python.[11] Meskipun kurangnya rilis utama, Flask telah menjadi sangat populer di kalangan penggemar Python. Pada pertengahan tahun 2016, Flask menjadi kerangka kerja aplikasi web versi Python yang terpopuler di GitHub.[12]
Fitur
- Berisi pengembangan server dan pengawakutu
- Dukungan terintegrasi untuk pengujian unit
- RESTful request dispatching
- Menggunakan Jinja2 template engine
- Dukungan untuk secure cookies (sisi klien sesi)
- 100% WSGI 1.0 compliant
- Berbasis Unicode
- Dokumentasi yang ekstensif
- Kompatibilitas dengan Google App Engine
- Ekstensi yang tersedia untuk meningkatkan fitur-fitur yang diinginkan
Contoh
Kode berikut menunjukkan aplikasi web sederhana yang mencetak "Hello World!":
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Referensi
Pranala luar