Flask MVC (Unit-3) Projeye Başlangıç
Modelleri oluşturduktan sonra projenin çalıştırılması için gerekli olan run.py (ismi farklı da olabilir) dosyasına bakalım.
#run.py
from app import app
if __name__ == '__main__':
app.run(host='localhost', port=800, debug=True)
Burada app __init__.py’de bulunan app = Flask(__name__)’den geliyor. Projenin bir flask projesi olduğunu buradan belirtiyoruz. app.run() ile proje çalışacağı host ve port bilgisini belirtiyoruz debug=true sayesinde bir exception durumunda bize hata satırını gösterecektir. Production’da bunu false yapabiliriz.
#__init__.py
from flask import Flask,render_template
from flask_sqlalchemy import SQLAlchemy
from config import configuration
app = Flask(__name__)
app.config.from_object(__name__)
app.config.update(configuration.__dict__)
db = SQLAlchemy(app)
from app.models import author
from app.models import book
from app.modules.manage.authors import mdl as au
from app.modules.manage.books import mdl as bk
from app.modules.main import mdl as mn
app.register_blueprint(au)
app.register_blueprint(bk)
app.register_blueprint(mn)
db.create_all()
Burası projemizin ana dosyası oluyor. Modüllerin birbirleri ile bağlantısını blueprint ile bu ana proje dosyası üzerinden yapıyoruz. Yeri gelmişken Flask Blueprint kavramından bahsedelim.
Flask Blueprint : Python çalışma düzeni olarak verilen bir .py dosyasını alıp derler ve size bir çıktı üretir şeklindedir. Bu düzen bu proje gibi birden fazla dosya içeren bir proje için çok da uygun değildir. Blueprint bu tip dağıtık dosya yapılarının birbirleri ile bağlantı kurmasını sağlayan bir yapı diyebiliriz.
app.register_blueprint(au) ile au olarak alias verdiğimiz author modulunu app = Flask() içersine register etmiş oluyoruz. Bu sayede app içinde register olan tüm modüller birbirleri ile bağlantı iletişim kurabilir hale gelmiş oldu. db.create_all ile db = SQLAlchemy(db) üzerinden proje genelinde database işlemlerini yapabilir hale geliyoruz.
SQLAlchemy : Python için geliştirilmiş en popüler veritabanı yönetim ve ORM aracıdır. Bu sayede veritabanı CRUD ve migration işlemlerini yapabilirsiniz.
Geri bildirim: Flask MVC (Unit-4) Alembic Configuration - Bilişim Profesyonelleri