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')
  • 相关阅读:
    passenger中的设置ssl
    memcached在rails中的使用介绍
    redis相关
    复制linode镜像
    memcached启动 安装
    A Short History of Character Sets
    du h df h 磁盘空间满处理办法
    硬盘2T 现在也才不到1000了,变得感觉太便宜了
    最近爬虫心得
    20110205网站更新部署过程记录
  • 原文地址:https://www.cnblogs.com/tangpg/p/9019068.html
Copyright © 2011-2022 走看看