Django数据库补充之事务
生活随笔
收集整理的這篇文章主要介紹了
Django数据库补充之事务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
往數據庫寫入數據時,如果寫入了不完整的數據,我們稱之為臟數據。事務管理(transaction)可以防止這種情況發生。事務管理一旦監測到寫入異常,會執行回滾操作,即要么寫入完整的數據,要么不寫入。在Django中使用事務很簡單,我們來測試一下:
新建項目Transaction,創建應用app01,編輯models創建兩張表并執行數據庫遷移,如下:
from django.db import modelsclass UserInfo(models.Model):username = models.CharField(max_length=32)email = models.EmailField(max_length=64)class Dept(models.Model):title = models.CharField(max_length=32)?
定義路由:
from django.conf.urls import url from app01 import viewsurlpatterns = [url(r'^test/$', views.test), ]?
定義test視圖函數:
from django.shortcuts import render, HttpResponse from . import modelsdef test(request):try:from django.db import transaction # 導入事務with transaction.atomic():user_obj = models.UserInfo.objects.create(username='Lena', email='example@live.com')dept_obj = models.Dept.objects.create(title='IT')except Exception as e:return HttpResponse('error happened, db rollback')return HttpResponse('OK')說明:
注意一點:事務需要數據庫引擎支持,比如Innodb引擎就是支持的。
總結
以上是生活随笔為你收集整理的Django数据库补充之事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你在看Netflix,Netflix也在
- 下一篇: OER 7451 in Load Ind