zoukankan      html  css  js  c++  java
  • django 事务

    from django.db import transaction

    @transaction.atomic()
    def page_trans(request):
    """ 事务练习
    发布微博 顺便发布一条评论
    """
    user = WeiboUser.objects.get(pk=1)
    # 发布微博
    weibo = Weibo.objects.create(user=user,
    content='事务练习')
    # 发布评论
    comment = Comment.objects.create(user=user,
    content='微博评论',
    weibo=weibo)

    print('weibo:',weibo.pk,';comments:',comment.id)
    return HttpResponse('ok');


    def page_trans_with(request):
    """ 事务练习
    发布微博 顺便发布一条评论
    """
    with transaction.atomic():
    user = WeiboUser.objects.get(pk=1)
    # 发布微博
    weibo = Weibo.objects.create(user=user,
    content='事务练习with')
    # 发布评论
    comment = Comment.objects.create(user=user,
    content='微博评论with',
    weibo=weibo)
    print('weibo:', weibo.pk, ';comments:', comment.id)
    return HttpResponse('ok')


    def page_trans_hand(request):
    """ 手动控制事务
    发布微博 顺便发布一条评论
    """
    try:
    # 放弃自动提交
    transaction.set_autocommit(False)

    user = WeiboUser.objects.get(pk=1)
    # 发布微博
    weibo = Weibo.objects.create(user=user,
    content='事务练习hand')
    # 手动提交事务
    transaction.commit()
    # 发布评论
    comment = Comment.objects.create(user=user,
    content='微博评论hand',
    weibo=weibo)
    print('weibo:', weibo.pk, ';comments:', comment.id)
    except:
    # 不使用事务则手动删除数据
    # weibo.delete()
    # 回滚
    transaction.rollback()

    return HttpResponse('ok')
  • 相关阅读:
    搭建CDH的yum本地源
    搭建一个离线yum源
    VMware主机 几次断电后,挂载的磁盘报错了,系统无法启动
    vm workstation15 迁移至ESXi6.7步奏
    ESXi6.7在 ASUS PRIME B360-PLUS 主板上安装报错
    php常用函数
    PHP函数
    php语句
    TSQL语句练习题
    php的基础
  • 原文地址:https://www.cnblogs.com/ericblog1992/p/11474139.html
Copyright © 2011-2022 走看看