我有一个实际上与模型类同构的数据库,创建它们似乎是在浪费时间。我正在使用 sqlalchemy 核心(不是 orm),并且创建了类似于以下示例的网关类:
class BanGate(Gateway):
def __init__(self):
super(BanGate, self).__init__('ban')
def ban_user(self, user, group, exp):
data = dict(user_id=user, group_id=group, expires=exp)
self._table.insert(values=data).execute()
def unban_user(self, user, group):
cond = and_(self._table.c.user_id == user, self._table.c.group_id == group)
self._table.delete(whereclause=cond).execute()
class ForumGate(Gateway):
def __init__(self):
super(ForumGate, self).__init__('forum')
def create_forum(self, group, user, title, desc):
data = dict(group_id=group, creator=user, name=title, description=desc)
self._table.insert(values=data).execute()
def delete_forum(self, forum):
stmt = (self._table.c.forum_id == forum)
self._table.delete(whereclause=stmt).execute()
创建一个“禁止”或“论坛”类来保持状态并使用这些网关保存它似乎是浪费时间。对于控制器,我正在考虑简单地从请求对象中获取数据并直接使用这些网关对象,这是否可取?页面的大部分数据不需要被操作,只需保存和/或读取,因此似乎没有必要使用模型类。
此外,网关内部使用的表类使用自动加载功能,因此我没有定义数据库模式。
那么基本上我该如何去持久化数据呢?我应该创建一个模型类来传递给这些网关对象,还是应该直接从请求对象传递网关对象数据?
(另外,“gatway”指的是http://martinfowler.com/eaaCatalog/tableDataGateway.html)