django的ORM线程安全吗?

时间:2013-11-17 15:02:31

标签: django multithreading thread-safety django-orm

我有一个python程序,它使用django的ORM进行数据库访问。该程序具有各种线程,每个线程都可能通过读取或写入来访问数据库。请注意,此程序不是Web服务器。

django的ORM线程安全吗? 它可以在同一个解释器中从不同的线程并行使用吗? 答案取决于交易管理模式吗? django版?其他什么?

1 个答案:

答案 0 :(得分:2)

是,

方法查询,过滤,获取,排除等。返回一个新的QuerySet对象,以便完成基础,并且在线程中执行查询时不会遇到任何问题,因为它总是返回一个没有过去引用的新对象。

禁用自动提交设置。您可能正在使用更频繁的事务和select_related方法来避免常见的线程问题,例如同时访问行。

我建议您始终检查您的代码是否会返回一个新的QuerySet对象,并且不会将查询集作为参数发送到函数中,您将会很好。