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')
  • 相关阅读:
    Z遮罩层完全覆盖页面
    页面加载完成时
    文字超出不换行,用省略号表示
    去掉最后一个元素的边线
    电话点击即可拨打
    制作对话的三角形
    active在iphone上不起作用
    jquery选择后代以及toggle,toggleClass用法
    button点击变换颜色时出现一个蓝色边框
    表格边框的实现
  • 原文地址:https://www.cnblogs.com/ericblog1992/p/11474139.html
Copyright © 2011-2022 走看看