我试图通过Django python发送查询,我也试图阻止任何SQL注入漏洞
有人能给我解释一下消息传递是如何完成的吗?例如,像查询
"SELECT * FROM admin WHERE name LIKE '%myTitle%'
字符串
像这样配置Query很容易
x1n1x;
但是当插入%s时,取消%%时会产生许多错误,例如
SELECT * FROM admin WHERE name LIKE %s
型
当查询完成时,它就像
SELECT * FROM admin WHERE name 'MyTitle'
型
它正在正确实现,但我希望将其设置为%%,在%s LIKE中
SELECT * FROM admin WHERE name '%MyTitle%'
型
有人能给我解释一下怎么解决这个问题吗
我的简单脚本
from django.db import connection
title = "myTitle"
query = "SELECT * FROM admin WHERE name LIKE %s"
with connection.cursor() as cursor:
cursor.execute(query, (title,))
型
1条答案
按热度按时间zzoitvuj1#
Kindy查看此页面:
What is the SQL ''LIKE" equivalent on Django ORM queries?
这就是Django-ORM的方式。
https://docs.djangoproject.com/en/4.2/topics/db/sql/的
这是jango处理原始查询的方式
字符串
你所展示的不是Django代码,而是纯粹的python-mysql。
对于python-MySQL,你应该像你做的那样做,它会关心引号和注入。
但你应该这样做
型
其中title_like是like-string。
mysql like string which contains %的