zoukankan      html  css  js  c++  java
  • django-控制mysql事物

    from django.db import transaction 

    两种方式控制事务:为了保持数据一致性

      一个Book表,一个Author表。添加一本书,也要保证添加作者。By事物控制

      book = Book.object.get(id=1) # 单个Book.object

      book.字段.find('a') # 查询该字段是否包含'a' ,不包含返回 -1,包含返回 >=0

    一:装饰器

     只能装饰app下的View中的def方法。

    @transaction.atomic
    def forTransaction(request):
        """ 事物装饰器transaction.atomic """
        author = Author.objects.create(name='xixi1')
        book = Book.objects.create(headline='练习事物22')
        author.book.add(book)
       author,save()
    # assert not book.headline.find("事物") >=0, "敏感信息" if book: raise Exception("强行错误") # 有错误就都不执行 return HttpResponse("ojbk")

     二:使用上下文管理器的方式

    在view中,使用 with transaction.atomic():

    class ForTransaction(View):
        ''' 使用上下文管理器,管理事务 '''
        def get(self, request):
            with transaction.atomic():
                author = Author.objects.create(name='haha1')
                book = Book.objects.create(headline='upDown')
                author.book.add(book)  # add 多对多关系使用
                author.save()
                assert not book.headline.find("up") >=0, "敏感信息" #包含‘up’返回>=0的值,则报错。 有错误就都不执行
            return HttpResponse('ojbk')
  • 相关阅读:
    进入javascript的学习了
    详解CSS display:inline-block的应用(转)
    CSS学习第一天
    HTML小结~
    表单提交中的input、button、submit的区别(转来学习)
    第二天又是充实的一天
    java开班啦~步入程序员的第一步
    sql 两大类 DDL数据定义语言 和DCL数据控制语言
    单行函数(日期函数)
    单行函数
  • 原文地址:https://www.cnblogs.com/tangpg/p/9019068.html
Copyright © 2011-2022 走看看