【Django雜記】django Django的事務操作方法
阿新 • • 發佈:2022-05-31
Django框架本身提供了兩種事務操作的方法(針對mysql)
從django1.6開始,Django的事務操作方法主要通過django.db.transation模組完成
啟用事務用法1:
from django.db import transaction
from rest_framework.views import APIView
class OrderAPIView(APIView):
@transaction.atomic # 開啟事務,當方法執行完以後,自動提交事務
def post(self, request):
pass
啟用事務用法2:
在使用事務過程中,有時候會出現異常,當出現異常的時候,我們需要讓程式停下來,同時回滾事務。from django.db import transaction from rest_framework.views import APIView class OrderAPIView(APIView): def post(self, request): with transaction.atomic(): # 開啟事務,當with語句執行完成以後,自動提交事務 pass # 資料庫操作
from django.db import transaction from rest_framework.views import APIView class OrderAPIView(APIView): def post(self, request): with transaction.atomic(): # 設定事務回滾的標記點 sid = transation.savepoint() ... try: ... except: transation.savepoint_rallback(sid)