我正在使用烧瓶和 sqlalchemy 创建一个 Web 应用程序。
我对放置 db_session 相关语句(如 db_session.add())感到困惑。我正在考虑两种方法。一种是在模型本身中创建一个 add() 函数并完全封装 sqlalchemy 部分。另一种方法是从控制器调用这些函数。在查看许多模型示例时,我可以看到大多数情况下使用了第二种方法。哪种方法更好/正确,为什么?
eg1) 在模型本身中
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()
.
.
.