Django中能用ORM的就用它ORM吧,不建议执行原生SQL,可能会有一些安全问题,
如果实在是SQL太复杂ORM实现不了,那就看看下边执行原生SQL的方法,跟直接使用pymysql基本一致了
from django.db import connection
with connection.cursor() as cursor
cursor.excute('select * from accounts_User')
row = cursor.fetchall()
return row
with connection.cursor() as cursor:
cursor.execute("select * from publisher")
#得到表的属性列表
columns = [col[0] for col in cursor.description]
#zip函数将连个元组进行整合,在用dict函数将其变成字典
res = [dict(zip(columns, row)) for row in cursor.fetchall()]
print(res)
raw:执行原始sql并返回模型实例
1.使用extra:查询人民邮电出版社出版并且价格大于50元的书籍
Book.objects.filter(publisher__name=‘人民邮电出版社’).extra(where=[‘price>50’])
2.使用raw
books=Book.objects.raw('select * from hello_book')
for book in books:
print book
3.自定义sql
from django.db import