django中的connection.cursor执行原生sql

connection.cursor 只能得到元组类型,更阴功的时,它的参数化操作搞死人

像这种要动态表名列名啊排序关键字啊,都不能使用参数化查询,只能拼装字符串 
       sql = '''SELECT t1.id,t1.serial_number,t1.position,t1.system_os,t1.pc_score,t1.pc_cpu,t1.pc_memory,t1.use_time,t2.name AS person_name
        FROM app_HardwareInfo AS t1
        LEFT JOIN app_PersonInfo AS t2 ON t1.person_id=t2.id
        ORDER BY t1.%s %s''' % (sort, order)
        cursor.execute(sql)

参数化只能用于值
        id1 = 1
        id2 = 2
        sql = '''SELECT t1.id,t1.serial_number,t1.position,t1.system_os,t1.pc_score,t1.pc_cpu,t1.pc_memory,t1.use_time,t2.name AS person_name
        FROM app_HardwareInfo AS t1
        LEFT JOIN app_PersonInfo AS t2 ON t1.person_id=t2.id
         WHERE    t1.id=%s AND t2.name=%s'''
        cursor.execute(sql,[id1,id2])

 

转载于:https://my.oschina.net/u/2723480/blog/705407

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值