| 麦田守望者's profile异想空间PhotosBlogLists | Help |
|
|
7/4/2008 使用django框架的connection对象需要注意的一点django允许我们执行自定义的SQL语句。首先需要import connection对象: from django.db import connection connection对象封装了db-api规范中定义的connection对象。但是dir(connection)之后并没有发现commit和rollback方法,如何提交事务呢?当执行DELETE、INSERT、UPDATE后,必须connection对象的commit方法才能将数据写入的数据库中。 原因如下:connection对象中包含又一个connection对象,它才是真正的与实际数据库建立的connection对象。如下代码: connection.cursor().execute("INSERT INTO table1 (col) VALUES ('something')") try: 能够正确执行。 2/26/2007 始终使用字典语法设置session对象的数据在使用django的session对象的时候,确保始终使用字典语法设置session中的数据。如下代码:
request.session["myname"] = "麦田守望者"
需要特别留意的是,如果session中存储了一个tuple或者列表对象,那么在修改完它们之后,同样也要用重新设置request.session。如下示例(没有什么实际意义,仅供示意):
按照通常的思路,myCustomerList变量已经引用了session对象中的CustomerList列表对象,经过第三行的代码列表中应该存在了新客户对象。实际上,确实存在。那么为何必需最后的一行代码?
从django文档中得知(与session有关的文档在session.txt中),session对象需要数据库的支持,并且在每次修改session对象的时候,django会自动将其数据写入到数据库中。这是默认的,写入session对象的时机可以另作配置,详情请查看session.txt文档。由此可见,在默认情况下,只有使用字典语法设置session对象的数据,方可触发django的写session数据的行为。 |
|
|