【发布时间】:2013-11-09 07:43:52
【问题描述】:
我正在开发一个使用 SQLALchemy 操作 SQL 表的软件。 用户将执行的每个操作(插入、修改、删除)都必须记录在特定的 LOG 表中。
日志表如下所示:
+-----------+----------------------------------------------+
| user_id | log |
+-----------+----------------------------------------------+
| 21 | Value x added in table y |
| 12 | Value z deleted from table w |
为了编写这样的日志,我在表 Log 中定义了一个函数,它插入一个具有以下原型的新日志。
class Foo(Base):
__tablename__ = 'foo'
id = Column(Integer, primary_key=True)
value = Column(String)
@staticmethod
def insert(value):
item = Foo()
item.value = value
session.add(item)
Log.add(item)
class Log(Base):
user_id = Column(Integer, not_null=True)
value = Column(String, not_null=True)
@saticmethod
def add(item):
logitem = Log()
logitem.user_id = x
logitem.value = "Insertion of %s" % item.value
session.add(logitem)
上面的代码不起作用,因为没有定义用户的“x”。
我不想在调用 Foo.insert 方法时将 user_id 作为参数传递。我想知道是否可以将 user_id 绑定到会话,以便 user_id 定义一次并为所有 sql 查询保留。
【问题讨论】:
标签: python session sqlalchemy