Django 解析 url 的方式不同

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

我有一个网址,其中包含分号:

/?a=3;4

我想做

request.GET['a']
输出
3;4
,现在是
3

可以吗?

谢谢你。

Python3.8、Django 3.1

django url
1个回答
0
投票

是的,在 django 3.1 和 python 3.8 中,

;
字符会破坏查询字符串。

您有两种方法可以解决它:

  1. 将其替换为
    %3B
    ,就像这样
    /?a=3%3B4
  2. 手动解析查询字符串

手动解析qs的示例:

from urllib.parse import parse_qs

query_string = request.META['QUERY_STRING']
params = parse_qs(query_string, keep_blank_values=True)
a_value = params.get('a', [''])[0]
© www.soinside.com 2019 - 2024. All rights reserved.