%20的django url模式

%20的django url模式,django,django-urls,Django,Django Urls,在Django中,我需要使用什么url模式来处理url编码字符,如%20 我正在使用(?p[\w]+),但这只处理字母数字字符,因此%会导致错误我可以使用下面给出的配置使其正常工作。检查它是否适合你的需要 (?P<name>[\w|\W]+) (?P[\w |\w]+) 如果您只想留出空间: (?P<name>[\w\ ]+) (?P[\w\]+) 这样做并允许其他字符的最佳方法是使用'\s',即任何空格、制表符和新行 (?P<name>[\w\s]+)

在Django中,我需要使用什么url模式来处理url编码字符,如%20


我正在使用
(?p[\w]+)
,但这只处理字母数字字符,因此%会导致错误

我可以使用下面给出的配置使其正常工作。检查它是否适合你的需要

(?P<name>[\w|\W]+)
(?P[\w |\w]+)

如果您只想留出空间:

(?P<name>[\w\ ]+)
(?P[\w\]+)

这样做并允许其他字符的最佳方法是使用'\s',即任何空格、制表符和新行

(?P<name>[\w\s]+)
(?P[\w\s]+)
我正在使用Django 2.2

它使用

您只需使用:

<name> or <str:name>

这不匹配所有单词字符和所有非单词字符吗?
会不会太多easier@JKirchartz它相当于IMHO,但出于同样的原因也同样危险。“[\w |\w]”与“.”相同,但更容易混淆,因此-1比允许所有非单词字符要好得多。谢谢。这是我认为最好的答案:最严格的限制,但仍然允许空间%20是空间,我不希望允许制表符、新行或软新行等
#urls.py
from django.urls import path
from . import views
urlpatterns = [
   path("<name>",views.some_view),
   ....
]
#view.py
def some_view(request, name):
    # process here
    context = { "name" : name }
    return render(request,"some.html",context)