zoukankan      html  css  js  c++  java
  • 原生sql和django的事务控制

    def test(request):
        with connections['default'].cursor() as c:
            try:
                with transaction.atomic(using='default'):
                    team_sql='insert into permission_team VALUES (%s,%s,%s)'
    
                    per_sql="insert into permission_permission VALUES (%s,%s,%s,%s)"
                    c.execute(team_sql,[11,'一2组',4])
                    team_result=c.fetchall()
                    c.execute(per_sql,['ddd','啊哈哈','test','用户管理'])
                    # per_result=c.fetchone()
            except Exception as e:
                return render(request,'error/raise_error.html',{'e':e})
        return HttpResponse(6666)
    
    
    
    # 注意如果,直接使用装饰器@transaction.atomic(),因为try语句,transaction无法捕捉到异常,因此只能写在函数中
    from django.shortcuts import render
    from django.http import HttpResponse
    # Create your views here.
    from on_mod.models import Permission,Role
    from django.db import connections,transaction
    # @transaction.atomic()
    def a(request):
        cursor = connections['default'].cursor()
        # Role.objects.filter(name=u'管理').delete()
        sql = """update account_user set username ='666' WHERE id =4"""
        sql_team = """update  permission_team set name='测试啊' WHERE id=2"""
        try:
            with transaction.atomic(using='default'):
                cursor.execute(sql)
                raise KeyboardInterrupt
                cursor.execute(sql_team)
    
        except KeyboardInterrupt as e :
            print(6666)
        return HttpResponse(666)
    

    参考:https://blog.csdn.net/qq_23934063/article/details/72809279

  • 相关阅读:
    六、mysql字段类型选择
    五、mysql存储引擎
    四、mysql内置函数
    三、mysql运算符
    二、mysql数据类型
    一、mysql使用入门
    拉链法解决Hash节点冲突问题
    CSS3样式
    CSS样式表
    HTML的表格、表单和框架
  • 原文地址:https://www.cnblogs.com/lajiao/p/8939954.html
Copyright © 2011-2022 走看看