我阅读了以下文档:https://docs.djangoproject.com/en/3.2/topics/db/sql/
在模型中,有许多过滤器查找可用,如:field__gt、field__lt、field__range和field__contains,但我想将它们用作原始sql,比如:
SELECT *
FROM customers
WHERE customers.name like '%name%' and age < 30 and status IN ('active','pending') 在此:
customers.name like '%name%'名称将是用户输入,因此我希望保护它不受sql注入的影响,并使用% operatorage < 30:30对其进行筛选,这将是用户输入,并希望执行< > = alsoIN ('active','pending'),我希望使用IN运算符传递字符串列表。
是否有适当的方法/包可以运行原始sql防止sql注入,以及使用%、IN、<、>和=运算符过滤数据。
发布于 2021-12-03 13:44:35
使用Django ORM怎么样?(这是正确的方法)
Customer.objects.filter(name__contains=“name”, age__lt=30, status__in=[‘active’, ‘pending’])假设表/列名和模型/字段匹配,就会得到您想要的所有安全性的确切查询。如果您确实需要执行一个原始查询,那么@Rvector将为您提供所需的文档。
https://stackoverflow.com/questions/70214157
复制相似问题