Pada tutorial sebelumnya kita sudah membahas tentang struktur dream project flask framework dan juga cara membuat virtual environment untuk project python.
Ditutorial kali ini kita akan belajar bersama mengenai hal-hal terkait konfigurasi di flask framework. Berikut ini beberapa hal yang akan kita pelajari :
- install flask framework
- konfigurasi flask framework
- Konfigurasi Flask SQLAlchemy
1) Install Flask Framework
Sebelum melakukan instalasi Flask Framework pastikan kamu sudah mengaktifkan mode python environment, kemudian install menggunakan PIP
pip install Flask
2) Konfigurasi Flask Framework
pada tutorial sebelumnya kita telah membuat struktur dream project, untuk lebih memudahkan mengikuti tutorial ini buat terlebih dahulu struktur project seperti pada tutorial sebelumnya. Kemudian copy requirements berikut kedalam file requirements.txt
click==8.0.1
configparser==5.0.2
Flask==2.0.1
Flask-SQLAlchemy==2.5.1
greenlet==1.1.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
SQLAlchemy==1.4.25
Werkzeug==2.0.1
jalankan perintah berikut pada terminal environment python yang sudah Anda buatpip install -r requirements.txt
selanjutnya mari kita konfigurasi flask framework ikuti langkah-langkah berikut ini
a) Buat Index Route Project
Buka file home.py yang ada di direktory api->route->home.py, kemudian kita buat modular komponen route dengan menggunakan Blueprint, perhatikan kode dibawah ini:
from flask import Blueprintfrom flask import jsonify
home = Blueprint('home', __name__)
@home.route('/')
def index():
return jsonify({'message':'hello world'})
function index pada kode diatas akan di eksekusi saat pertama kali APP di panggil
b) buat konfigurasi project utama
Buka file __init__.py yang ada di direktori api->__init__.py, kemudian kita buat function create_app. Perhatikan kode berikut ini :
from flask import Flaskimport os
def create_app():
app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile('config.py')
from api.route import home
app.register_blueprint(home.home)
return app
Di function create_app ini nantinya akan disi oleh semua konfigurasi dari project yang akan kita buat.
c) Buat Fungsi Run Project
Buka file app.py pada main project Anda, perhatikan kode berikut ini :
import osfrom api import create_app
app = create_app()
if __name__ == '__main__':
app.run()
Dari kode diatas saat pertama kali project dijalankan function create_app() akan di eksekusi. Untuk menguji hasil akhir dari konfigurasi flask framework, perhatikan kode berikut ini:
export FLASK_ENV=developmentflask run
Jalankan command diatas pada terminal environment project flask Anda, jika sukses hasilnya akan seperti gambar dibawah ini:
3) Konfigurasi Database Mysql
Sebelumnya kita telah menginstall sqlAlchemy dan juga configparser yang ada di file requirements.txt.
SQLAlchemy adalah Python SQL toolkit dan Object Relational Mapper yang memberi pengembang aplikasi kemudahan dalam integrasi bahasa SQL.
a) Buka file config.py yang ada di dierktory instance, perhatikan kode berikut ini :
import configparserconfig_parser = configparser.ConfigParser()
config_parser.read('config.ini')
class Config(object):
"""
Common configurations
"""
class DevelopmentConfig(Config):
"""
Development configurations
"""
DEBUG = True
SQLALCHEMY_ECHO = True
SQLALCHEMY_DATABASE_URI = 'mysql://{0}:{1}@{2}/{3}'.format(
config_parser['DBDEV']['DB_USER'],
config_parser['DBDEV']['DB_PASS'],
config_parser['DBDEV']['DB_HOST'],
config_parser['DBDEV']['DB_NAME']
)
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = config_parser['DEFAULT']['SECRET_KEY']
class ProductionConfig(Config):
"""
Production configurations
"""
DEBUG = False
Di file config.py terdapat dua class config yaitu development dan production, melalui dua class ini kita akan membedakan configurasi antara environment development dan production
b) Buka file config.ini
Berpindah ke direktori main project buka file config.ini dan perhatikan kode berikut:
[DEFAULT]SECRET_KEY = 23232rerere1@t4!
[DBDEV]
DB_HOST = localhost
DB_USER = root
DB_PASS = admin
DB_NAME = sample
c) Buka file __init__.py, kemudian tambakan konfigurasi sqlAlchemy pada funcgsi create_app(), perhatikan kode berikut:
from instance.config import DevelopmentConfigfrom flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app():
app = Flask(__name__, instance_relative_config=True)
app.config.from_object(DevelopmentConfig)
db.init_app(app)
from api.route import home
app.register_blueprint(home.home)
return app
Pada sesi tutorial kali ini semua konfigurasi telah selesai Anda buat, sekarang saatnya Anda melakukan ujicoba pada project Anda. Jalankan ulang perintah berikut :
export FLASK_ENV=developmentflask run
jika semua konfigurasi sukses anda melihat hasil akhir seperti gambar dibawah ini:
Untuk memastikan bahwa semua konfigurasi dasar project flask Anda sukses, buka web browser dan hasilnya akan seperti berikut: