0x00
尽管ORM很好用,单很多情况下有很大局限性,常常还是会需要用到原生sql查询。下面就吧django的原生sql查询封装几个常用方法(django底层是使用MySQLdb或mysqlclient,所以他们的封装类似,也可以参考)。
0x01
> 博客这个markdown格式化python代码的三双引号有问题,方法注释复制到编辑器查看更清晰
# coding=utf-8
from django.db import connections
def exec_sql(sql, params=None, db='default'):
"""
执行sql,例如insert和update
:param sql: sql语句
:param params: sql语句参数
:param db: Django数据库名
"""
cursor = connections[db].cursor()
cursor.execute(sql, params)
cursor.close()
cursor.last_insert_id()
return True
def fetchone_sql(sql, params=None, db='default', flat=False):
"""
返回一行数据
:param sql: sql语句
:param params: sql语句参数
:param db: Django数据库名
:param flat: