Dalam membuat sebuah aplikasi tentu perlu memikirkan architecture pattern yang akan digunakan, tujuanya adalah ketika aplikasi semakin kompleks maka tidak mengalami kesulitan untuk mengatur kodenya. maka diperlukan architecture MVC.
Design pattern adalah sebuah kosep atau tehnik yang diterapkan dalam membuat sebuah aplikasi. MVC adalah singkatan dari ( Model View Controller ) yaitu sebuah cara atau pola yang digunakan dalam mebuat aplikasi.
Berbicara masalah MVC design pattern maka perlu mengetahui tiga hal atau tiga kata kunci ini :
- Model Adalah cara mengolah data.
- View Adalah cara membuat user interface atau tampilan dari sebuah aplikasi.
- Controller Adalah tempat melakukan proses yang cukup rumit dari aplikasi .
MVC on Flask
Pada aplikasi flask agak sedikit perbedaan penamaan. Yang paling mencolok nanti adalah ketika ingin mengurusi view maka disini menggunakan templates.
Nah berikut ini adalah contoh aplikasi yang tidak mengimplementasikan MVC.
from flask import Flask app = Flask(__name__) def index(): return "Hello world." app.add_url_rule('/', 'index', index) app.run()
Sekilas contoh diatas tidak masalah, simple dan juga jelas. Akan tetapi permasalahan adalah bagaimana kalau memilii 100 type route dan 100 prosess yang berbeda yang cukup kompleks. Masih bisa di buat, tapi itu akan membuat kode yang ditulis didalam satu file akan menjadi cukup banyak dan akan membuat kesulitan untuk melakukan debugging jika terjadi error.
Struktur project terlebih dahulu :
|---project-flask |---app |---__init__.py |---models.py |---cores |---__init__.py |---admin |---__init__.py |---controller.py |---route.py |---auth |---__init__.py |---controller.py |---route.py |---static |---app.css |---app.js |---templates |---auth |---admin |---index.html |---migrations |---tests |---config.py |---run.py
Diatas adalah contoh struktur project aplikasi yang akan dibuat dengan flask, akan dibahas satu per satu struktur nya.
# | Folder | Keterangan |
1 | app | Pada folder app ini akan digunakan untuk menaruh segala file yang akan dibuat |
2 | migrations | Pada folder migration ini sebenarnya akan di generate otomatis yang mana nanti disini isinya adalah file - file untuk migration database |
3 | tests | Pada folder test berisi file - file yang digunakan untuk unit testing |
4 | app/cores | Pada folder app/cores ini akan berisi modul - model dari aplikasi yang akan ditulis. |
5 | app/cores/admin | Pada folder app/cores/admin contoh dari module admin. |
6 | app/cores | Pada folder app/cores/auth ini adalah contoh module Authentication. |
7 | app/static | Pada folder app/static ini digunakan untuk file static atau yang tidak berubah secara dinamis, seperti gambar, file css, file js dan yang lainya. |
8 | app/template | Pada folder app/templates ini digunakan untuk menaruh file html untuk aplikasi. |