gpt4 book ai didi

python - 如何从 URL 查询字符串中查找非空变量?或者我们可以从 python 中的请求中获取 URL 查询字符串中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:19 25 4
gpt4 key购买 nike

我想在 Django python 中基于多个字段过滤数据。
场景是,如果对网络服务器的 GET 请求是 /searchStudent/?firstName=&lastName=xyzage=23&class=&city= 并且我们不知道查询字符串中可能的参数是什么,其中一些可以带有值而一些变量不带有值。问题是,是否有任何方法可以从请求中获取只有值或没有值的变量。我知道我们可以简单地通过使用 request.GET.get('city') 获取值,但我正在寻找从查询字符串中获取非空变量的方法,有没有办法找到非值来自查询字符串的变量?在上面的场景中,city, class, and firstName 没有值,我不想在过滤器上添加它。什么是正确的方法?请提出正确的方法。

最佳答案

要获取非空查询参数的字典,请使用以下代码:

non_empty_params = dict((field, value)
for field, value in request.GET.iteritems() if value)

但不要以这种方式构建查询集。您永远不应该相信来自用户输入的数据。所以你必须有一个字段列表来搜索并使用这个列表来过滤掉不正确的字段名称:

fields = ('firstName', 'lastName', 'age', 'class', 'city', )
filter_params = dict((field, value)
for field, value in request.GET.iteritems()
if value and field in fields)
students = Student.objects.filter(**filter_params)

关于python - 如何从 URL 查询字符串中查找非空变量?或者我们可以从 python 中的请求中获取 URL 查询字符串中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com