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 时,发生错误,程序回滚,回到程序开始执行之前的状态.然后打印异常.

  • 相关阅读:
    $.ajax
    es6--之箭头函数
    vuex相关知识点
    grunt---grunt_test 测试用例
    git2--常用命令
    git命令
    百万程序员的苦恼-选择VB.NET还是C#
    在Linux上运行C#
    C#中的cookie编程
    C#编程让Outlook乖乖交出帐户密码
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9781119.html
Copyright © 2011-2022 走看看