美文网首页
Django中使用原生sql

Django中使用原生sql

作者: 记录每一次BUG | 来源:发表于2018-06-06 11:24 被阅读0次

    在Django中使用原生Sql主要有以下几种方式:

    一:extra:结果集修改器,一种提供额外查询参数的机制

    二:raw:执行原始sql并返回模型实例

    三:直接执行自定义Sql

    使用extra:(依赖于model)

    1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50'])

            Book.objects.filter(publisher__name='广东人员出版社',price__gt=50)

    2:Book.objects.extra(select={'count':'select count(*) from hello_Book'})

    使用raw:(依赖于model)

    Book.objects.raw('select * from hello_Book')

    自定义sql:(不依赖于model)

    Book.objects.raw("insert into hello_author(name) values('测试')")

    rawQuerySet为惰性查询,只有在使用时生会真正执行

    执行自定义sql:

    from django.db import connection

    cursor=connection.cursor()

    #插入操作

    cursor.execute("insert into hello_author(name) values('郭敬明')")

    #更新操作

    cursor.execute('update hello_author set name='abc' where name='bcd'')

    #删除操作

    cursor.execute('delete from hello_author where name='abc'')

    #查询操作

    cursor.execute('select * from hello_author')

    raw=cursor.fetchone() #返回结果行游标直读向前,读取一条

    cursor.fetchall() #读取所有

    相关文章

      网友评论

          本文标题:Django中使用原生sql

          本文链接:https://www.haomeiwen.com/subject/gcymsftx.html