1.Django也可以支持直接使用sql语句的方式通信数据库
查询:
使用model类名.objects.raw()进行数据库查询操作
语法:
model类名.objects.raw(sql语句,拼接参数)
返回值:RawQuerySet集合对象【只支持基础操作,比如循环】
预防sql注入写法:
raw = Book.objects.raw('select * from book where id = %s', ['1 or 2=2'])
print(type(raw))
for i in raw:
print(i)
运行截图:
2.完全跨过模型类操作数据库---查询、更新,删除
(1)导入cursor所在的包
from django.db import connection
(2)用创建cursor类的构造函数创建cursor类对象。
代码举例:
with connection.cursor() as cursor:
execute = cursor.execute('select * from book where id = %s', ['1 or 2=2'])