%20的django url模式
在Django中,我需要使用什么url模式来处理url编码字符,如%20%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]+)
我正在使用
(?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)