加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django1.6 transaction.atomic问题

发布时间:2020-12-16 21:31:22 所属栏目:Python 来源:网络整理
导读:我刚刚切换到Django 1.6(使用Posgres 9.1)并且有一些我无法自己回答的问题: (已回答)如果我当前在一个或多个以及在哪个transaction.atomic块中,是否有打印/显示我的声明? (已回答)我既没有启用TransactionMiddleware也没有将ATOMIC_REQUESTS设置为True.所
我刚刚切换到Django 1.6(使用Posgres 9.1)并且有一些我无法自己回答的问题:

>(已回答)如果我当前在一个或多个以及在哪个transaction.atomic块中,是否有打印/显示我的声明?
>(已回答)我既没有启用TransactionMiddleware也没有将ATOMIC_REQUESTS设置为True.所以默认情况下我的代码不包含在transaction.atomic块中,对吗?
>在transaction.atomic块中执行时,通过游标正确执行的sql语句是否正确?有没有其他/更好的方法来提交它们?

with transaction.atomic():
    cursor = connection.cursor()
    cursor.execute(sql)

>我是否需要将cursor.executemany()包装在transaction.atomic块中,或者执行是否已经原子地执行?
>如何查看当前的自动提交状态?何时在连接开始时将事务设置为全局数据库设置?

解决方法

回答你的一个问题:

您可以使用从以下位置返回的连接对象来确定您当前是否处于原子块中:

来自django.db.transaction导入get_connection或django.db.connections中的任何连接对象

它有一个in_atomic_block属性.

我觉得最简单的只是看看django source

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读