Apa yang pelajari dari Flask Python
hallo semua, kali ini saya akan berbagi hal yang saya lakukan untuk belajar pyhton menggunakan framework web python Flask. saya mengambil sumber tutorial dari sini. Disana ada 3 part dan akan saya bahas disini semuanya. tujuan saya mempelajari ini agar saya bisa memahami dasar flask untuk keperluan pengerjaan skripsi saya.
saya disini akan menggunakan anaconda virtual environtment untuk python. pertama kali saya download dan install anacona dan saya update dengan conda update conda
setelah install anaconda di linux, saya jalankan perintah berikut di terminal untuk menghentikan conda melakukan aktifasi base environtment setiap kali membuat terminal (sebenarnya enggak masalah sih, tapi menurut saya itu menganggu kebersihan terminal saya dan setiap memakai linux saya enggak selalu menggunakan anaconda)
conda config --set auto_activate_base false
setelah itu saya buat virtualenvnya dengan
conda create --name nama_env
setelah itu aktifkan dengan conda activate nama_env
setelah itu saya install package flask dan pip dengan cara. (ketika install
conda install flask pip mysqlclient
oh ya, seluruh codepy akan saya letak di github.
hal yang pertama dilakukan dengan mengedit file config.py menjadi seperti ini
class Config(object):
"""
konfig umum
"""class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_ECHO = Trueclass ProductionConfig(Config):
DEBUG = Falseapp_config = {
'development': DevelopmentConfig,
'production': ProductionConfig
}
disini kita belajar memisahkan environment untuk produksi dan untuk development. setelah itu edit file __init__.py
dan ketik sebagai berikut
# third-party imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy# third-party imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy# local imports
# import variabel app_config dari config
from config import app_config# db variabel initialization
db = SQLAlchemy()def create_app(config_name):
app = Flask(__name__, instance_relative_config=True)
app.config.from_object(app_config[config_name])
app.config.from_pyfile('config.py')
db.init_app(app)return app
pada bagian koding atas kita lakukan inisiasi variabel database db
dan kita buat fungsi dengan nama create_app.
Fungsi instance_relative_config
dan digabung app.config.from_pyfile('config.py)
membuat app
mengambil config dari file yang berasal dari folder instance
dyang bernama config.php
karna kita akan mengambil setingan dari folder instance
maka kita buat folder instance
dan buat file bernama config.py
dengan isian
SECRET_KEY = 'p9Bv<3Eid9%$i01'
SQLALCHEMY_DATABASE_URI = 'mysql://root:@localhost/crud-python'
disini kita menggunakan mysql sebagai database dan format skema url seperti
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@localhost/nama_tabel'
setelah itu edit file run.py
menjadi
import osfrom app import create_appconfig_name = os.getenv('FLASK_CONFIG')
app = create_app(config_name)if __name__ == '__main__':
app.run()
di koding tersebut kita import dulu module bernama os
dan fungsi create_app
dari folder app
. seterusnya pada variabel config_name
berfungsi untuk mendapatkan environment variabel FLASK_CONFIG
dan setelah itu di set fungsi create_app
dengan config environment variabel yang telah diset
*note
untuk bisa berjalan environment variabelnya dengan server config harus dijalankan menggunakanpython run.py
atau jika menggunakanflask run
harus di set environtmennya menggunakanexport FLASK_ENV=development
untuk mencoba flask yang kita seting berjalan dengan sempurna, kita coba buat route di create_app
sehingga app/__init__.py
menjadi
# third-party imports
from flask import Flask
from flask_sqlalchemy import SQLAlchemy# local imports
# import variabel app_config dari config
from config import app_config# db variabel initialization
db = SQLAlchemy()def create_app(config_name):
app = Flask(__name__, instance_relative_config=True)
app.config.from_object(app_config[config_name])
app.config.from_pyfile('config.py')
db.init_app(app)@app.route('/')
def hello_world():
return 'Hello, World'return app
untuk menjalankannya kita gunakan
export FLASK_CONFIG=development
export FLASK_APP=run.py
python run.py
atau jika ingin menggunakan flask command line agar setingan development tadi berjalan lancar gunakan
export FLASK_ENV =development
flask run
dan hasilnya sebagai berikut