Flask Blueprint — Solusi Struktur Project Berbasis Blueprint

Kalau kita membuka dokumentasi flask, mungkin kita menemukan sebuah quick guide yang berisi beberapa function dengan decorator-nya masing-masing untuk tugas route. Sangat berbeda dengan Django. Django sudah memiliki struktur project yang bisa dibuild otomatis.


Sebenarnya, kita bebas menentukan struktur diektori proyek yang kita bangun dengan Flask, tapi hal ini tentunya bersifat tidak independen. Karena struktur yang kita buat bukan satu-satunya struktur yang bisa dikatakan de facto untuk proyek dengan Flask.

Lalu bagaimana solusinya ? kita bisa menggunakan pendekatan struktur proyek berbasis blueprint di Flask. seperti yang sudah dijelaskan oleh flask dalam dokumentasi resminya bahwa:

A blueprint in Flask is not a pluggable app because it is not actually an application — it’s a set of operations which can be registered on an application, even multiple times. — Official Flask documentation, http://flask.pocoo.org/docs/0.12/blueprints/.

Untuk struktur direktorinya terlihat seperti:

├──application
│ ├──__init__.py
│ └──users
│ ├──__init__.py
│ └──views.py
└──run.py

Hampir mirip dengan Django, hanya saja pada struktur ini tidak terdapat direktori khusus menyimpan pengaturan project untuk seluruh aplikasi. dalam pendekatan Django, mungkin users di sini dianggap sebagai sebuah aplikasi.

Untuk sampel kodenya, bisa kamu unduh di sini untuk mencobanya:

Flask Sample Code Blueprint

Sebenarnya ada stau lagi struktur proyek pada Flask, yakni Module — Base Flask Application (pendekatan berbasis module). Strukturnya terlihat seperti:

application
├──application
│ ├──__init__.py
│ ├──models.py
│ ├──static
│ │ ├──app.js
│ │ └──styles.css
│ ├──templates
│ │ ├──index.html
│ │ └──layout.html
│ └──views.py
└──run.py

Sumber saya peroleh dari:

Flask Blueprints — Dive into the world of the Flask microframework to develop an array of web applications. By Joël Perras. PACKT Publishing, November 2015.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.