フラスコと sqlalchemy を使用して Web アプリケーションを作成しています。
db_session.add() のような db_session 関連のステートメントを置くことについて混乱しています。私が考えているアプローチは2つあります。1 つは、モデル自体に add() 関数を作成し、sqlalchemy 部分を完全にカプセル化することです。別のアプローチは、コントローラーからこれらの関数を呼び出すことです。モデルの多くの例を見ていると、主に 2 番目のアプローチが使用されていることがわかります。これを行うためのより良い/正しい方法とその理由はどれですか?
例1) モデル自体
class Events(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128))
.
.
.
def add(self):
db.session.add(self)
db.session.commit()
def delete(self):
db.session.delete(self)
db.session.commit()
class EventsAPI(MethodView):
def get(self, event_id):
e = Events()
e.title = 'testing'
e.add()
.
.
.
2) コントローラー内
class Events(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128))
.
.
.
class EventsAPI(MethodView):
def get(self, event_id):
e = Events()
e.title = 'testing'
db.session.add(e)
db.session.commit()
.
.
.