https://ahmadrosid.com The more I learn, the more I realize how much I don’t know.
May 28, 2018
Model View Controller Pada Flask.
Pada tutorial sebelumnya kita sudah bahas tentang routing pada aplikasi flask, kali ini kita akan beranjak sedikit tentang software design pattern.
Sebelumnya ( Flask Routing )
Memahami routing pada flask
Dalam membuat sebuah sebuah aplikasi tentu kita perlu memikirkan architecture pattern yang akan kita gunakan, tujuanya adalah ketika aplikasi kasi ita semakin kompleks maka kita tidak mengalami kesulitan untuk mengatur kodenya. Nah pada kesempatan kali ini kita akan sedikit bahas tentang architecture MVC.
Nah apa sih sebenarnya design patter dan MVC itu? Bagi kamu yang masih pemula mungkin akan sedikit mengalami kebingunan dengan istilah design pattern, simple gini design pattern ini adalah sebuah kosep atau tehnik yang kita terapkan dalam membuat sebuah aplikasi. MVC sendiri adalah singkatan dari ( Model View Controller ) yaitu sebuah cara atau pola yang digunakan dalam mebuat aplikasi.
Berbicara masalah MVC design pattern maka kita perlu mengetahui tiga hal atau tiga kata kunci ini :
Yang perlu di kathui inti dari MVC adalah ketika kita mengurusi data seperti menambah, merubah, atau menghapus maka proses itu dilakukan pada mode. Sedangkan jika kita akan mengurusi proses yang cukup kompleks misalanya melakukan proses matematika atau apapun yang melakukan proses kompleks maka dilakukan pada controller. Terakhir ketika kita mengurusi tampilan ini dilakukan pada views.
Ok sekarang bagaimana kita melakukan MVC pada aplikasi flask? Well, pada aplikasi flask agak sedikit perbedaan penamaan. Yang paling mencolok nanti adalah ketika kita ingin mengurusi view maka disini kita menggunakan templates mungkin jika kamu sudah pernah menggunakan ruby on rails, atau laravel akan sedikit mengalami kebingunan tapia jangan di hiraukan ini cuman permasalahan penamaan saja.
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()
Sekilan kayaknya nggak masalah ya dengan itu, simple dan juga jelas. Akan tetapi permasalahaya adalah bagaimana kalau kita memilii 100 type route dan 100 prosess yang berbeda yang cukup kompleks. Masih bisa di buat, tapi itu akan membuat kode yang kita tulis didalam satu file akan menjadi cukup banyak dan akan membuat kita mengalami kesulitan untuk melakukan debugging jika terjadi error.
Nah sekarang kita mulai dengan 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 kita buat dengan flask, kita bahas satu per satu struktur nya.
# | Folder | Keterangan |
1 | app | Pada folder app ini akan digunakan untuk menaruh segala file yang akan kita buat |
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 kita gunakan untuk unit testing |
4 | app/cores | Pada folder app/cores ini akan berisi modul - model dari aplikasi yang akan kita tulis. |
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. |
Selanjutnya - Flask Routing
Bagaimana memproses url pada flask.
© 2017 Codecast.id