zoukankan      html  css  js  c++  java
  • Django之事务

    Django之事务

       事务就是将一组操作捆绑在一起,只有当这一组操作全部都成功以后这个事务才算成功;当这组操作中有任何一个没有操作成功,则这个操作就会回滚,回到操作之前的状态.

      其中牵扯到向数据库中写数据的操作时,看起来未成功的操作实际上已经写进数据库了,在发生异常以后,回滚过程中,将这些数据进行删除,恢复到操作之前,当你再次往数据库中写数据时,id将会被占用,也就是说id会出现断了的情况,就是之前写入删除导致的.

      先搭建一个py文件运行的环境:

     1 import os
     2 
     3 if __name__ == '__main__':
     4     os.envuron.setdefault('DJANGO_SETTINGS_MODULE', 'BMS.settings')
     5 
     6     import django
     7 
     8     django.setup()
     9 
    10 
    11     import datetime
    12     from app01 import models
    13 
    14     try:
    15 
    16         from django.db import transaction
    17 
    18         with transaction.atomic():
    19             new_publisher = models.Publisher.objects.create(name='刺激战场')
    20             models.Book.objects.create(title='机场钢枪',
    21          publish_date = datetime.date.today(), 
    22          publisher_id=10) # 指定一个不存在的出版社ID 23 24 except Exception as e: 25 print(str(e))

      因为出版社不存在,当程序执行到 publisher_id=10 时,发生错误,程序回滚,回到程序开始执行之前的状态.然后打印异常.

  • 相关阅读:
    Rain 学习自用贴
    連休計画
    091207 晴
    记下London奥运我喜欢的几首歌
    20世纪最好的10个算法(转)
    一日一美女:告诉你什么是斐波那契螺旋线
    矩阵鞍点的寻找
    日本の物語
    a new start~ s!
    Photoshop CS5运用色彩原理去除半透明水印(转)
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9781119.html
Copyright © 2011-2022 走看看