首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于django中的自定义原始sql查询,有什么方法或包可以执行筛选器(搜索)吗?

对于django中的自定义原始sql查询,有什么方法或包可以执行筛选器(搜索)吗?
EN

Stack Overflow用户
提问于 2021-12-03 12:14:57
回答 1查看 125关注 0票数 0

我阅读了以下文档:https://docs.djangoproject.com/en/3.2/topics/db/sql/

在模型中,有许多过滤器查找可用,如:field__gtfield__ltfield__rangefield__contains,但我想将它们用作原始sql,比如:

代码语言:javascript
复制
SELECT * 
FROM customers 
WHERE customers.name like '%name%' and age < 30 and status IN ('active','pending') 

在此:

  • customers.name like '%name%'名称将是用户输入,因此我希望保护它不受sql注入的影响,并使用% operator
  • age < 30:30对其进行筛选,这将是用户输入,并希望执行< > = also
  • IN ('active','pending'),我希望使用IN运算符

传递字符串列表。

是否有适当的方法/包可以运行原始sql防止sql注入,以及使用%IN<>=运算符过滤数据。

EN

回答 1

Stack Overflow用户

发布于 2021-12-03 13:44:35

使用Django ORM怎么样?(这是正确的方法)

代码语言:javascript
复制
Customer.objects.filter(name__contains=“name”, age__lt=30, status__in=[‘active’, ‘pending’])

假设表/列名和模型/字段匹配,就会得到您想要的所有安全性的确切查询。如果您确实需要执行一个原始查询,那么@Rvector将为您提供所需的文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70214157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档