當(dāng)前位置:
首頁 >
Django数据库补充之事务
發(fā)布時間:2025/3/17
30
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Django数据库补充之事务
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
往數(shù)據(jù)庫寫入數(shù)據(jù)時,如果寫入了不完整的數(shù)據(jù),我們稱之為臟數(shù)據(jù)。事務(wù)管理(transaction)可以防止這種情況發(fā)生。事務(wù)管理一旦監(jiān)測到寫入異常,會執(zhí)行回滾操作,即要么寫入完整的數(shù)據(jù),要么不寫入。在Django中使用事務(wù)很簡單,我們來測試一下:
新建項(xiàng)目Transaction,創(chuàng)建應(yīng)用app01,編輯models創(chuàng)建兩張表并執(zhí)行數(shù)據(jù)庫遷移,如下:
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視圖函數(shù):
from django.shortcuts import render, HttpResponse from . import modelsdef test(request):try:from django.db import transaction # 導(dǎo)入事務(wù)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')說明:
注意一點(diǎn):事務(wù)需要數(shù)據(jù)庫引擎支持,比如Innodb引擎就是支持的。
總結(jié)
以上是生活随笔為你收集整理的Django数据库补充之事务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你在看Netflix,Netflix也在
- 下一篇: sql分类及基本sql操作,校对规则(m