获取请求中的URL参数(Django)

3

在Django中如何获取所有这些URL参数(1、12-18、5、Happy birthday)?

https://domain/method/?1='12-18'&5='Happy birthday'

我已经尝试过

parameter = request.GET.get("1", "") 

但我只得到了12-18。

2个回答

5
第二个参数是5,因此您可以访问'Happy birthday'
request.GET.get('5', '')

请注意,这里的字符串将包含单引号('...')作为字符串的内容。所以通常不应该加引号。
您可以使用以下代码获取键值对列表:
>>> dict(request.GET)
{'1': ["'12-18'"], '5': ["'Happy birthday'"]}

这将使用键作为字典的键,并映射到值的列表,因为单个键可以在查询字符串中多次出现,因此可能映射到多个值。

1
例如,如果您访问下面的URL:
https://example.com/?fruits=apple&meat=beef

然后,您可以按照下面的示例在views.py中获取所有参数。*我的答案解释了如何在Django中获取GET请求的值。
# "views.py"

from django.shortcuts import render

def index(request):

    print(list(request.GET.items())) # [('fruits', 'apple'), ('meat', 'beef')]
    print(list(request.GET.lists())) # [('fruits', ['apple']), ('meat', ['beef'])]
    print(request.GET.dict()) # {'fruits': 'apple', 'meat': 'beef'}
    print(dict(request.GET)) # {'fruits': ['apple'], 'meat': ['beef']}
    print(request.META['QUERY_STRING']) # fruits=apple&meat=beef
    print(request.META.get('QUERY_STRING')) # fruits=apple&meat=beef

    return render(request, 'index.html')

然后,您可以按照下面所示,在index.html中获取所有参数:
{# "index.html" #}

{{ request.GET.dict }} {# {'fruits': 'apple', 'meat': 'beef'} #}
{{ request.META.QUERY_STRING }} {# fruits=apple&meat=beef #}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接