2019-06-27 13:36:05 586浏览
今天千锋扣丁学堂Python培训老师给大家分享一篇关于Django框架orM与自定义SQL语句混合事务控制操作的详细介绍,结合实例形式分析了同一个方法里面既有ORM又有自定义SQL语句的情况下事务控制相关操作技巧。
from django.db import transaction ... @commit_on_success def save_test(request): user=User(name="aaa",age=30) user.save() cat=Category(id=2,name="cat001") cat.save() .......
from django.db import connection, transaction ... def batch_execsql(sqlarray): print sqlarray cursor = connection.cursor() ret="" try: for sql in sqlarray: cursor.execute(sql) transaction.commit_unless_managed() except Exception,e: ret=str(e) cursor.close() return ret sqlarray=[] sqlarray.append("insert into table .......") sqlarray.append("update table set.......") ret=batch_execsql(sqlarray)
@commit_on_success def save_company_callinfo(request): response=HttpResponse() try: #==orm 保存部分====== .... model1.save() .... model2.save() ... #==自定义SQL 部分==== sqlarray=[] sqlarray.append("insert into table .......") sqlarray.append("update table set.......") ret=batch_execsql(sqlarray) if len(ret)>0: transaction.rollback() response.write('{"status":"no","error":"%s"}' % ('add call information error',)) else: response.write('{"status":"no","error":"%s"}' % ('',)) except Exception,e: response.write('{"status":"no","error":"%s"}' % (str(e),)) return response
【关注微信公众号获取更多学习资料】 【扫码进入Python全栈开发免费公开课】