Django中如何获取所有GET请求值?

问题描述 投票:0回答:2

如何在 Django 中获取所有这些 url 参数(1、12-18、5、生日快乐)?

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

我已经尝试过:

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

但我只得到12-18。

python python-3.x django get url-parameters
2个回答
5
投票

第二个参数是

5
,所以访问
'Happy birthday'

request.GET.get('5', '')

请注意,此处的字符串将包含单引号 (

'…'
) 作为字符串的 content。所以通常这应该在不带引号的情况下完成。 您可以通过以下方式获取键值对列表:

>>> dict(request.GET) {'1': ["'12-18'"], '5': ["'Happy birthday'"]}

这将使用键作为字典的键,并映射到值的
列表

,因为单个键可以在查询字符串中出现多次,从而映射到多个值。


0
投票

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 #}

© www.soinside.com 2019 - 2024. All rights reserved.