2019-06-27 13:36:05 1521瀏覽
今天千鋒扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于Django框架orM與自定義SQL語(yǔ)句混合事務(wù)控制操作的詳細(xì)介紹,結(jié)合實(shí)例形式分析了同一個(gè)方法里面既有ORM又有自定義SQL語(yǔ)句的情況下事務(wù)控制相關(guān)操作技巧。
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
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】 【掃碼進(jìn)入Python全棧開(kāi)發(fā)免費(fèi)公開(kāi)課】
查看更多關(guān)于"Python開(kāi)發(fā)資訊"的相關(guān)文章>