在Django中,我需要使用哪种url模式来处理urlencode字符,例如%20
我正在使用(?P<name>[\w]+)
,但这只会处理字母数字字符,因此%会导致错误
答案 0 :(得分:25)
我能够使用下面给出的配置使其工作。检查它是否符合您的需求。
(?P<name>[\w|\W]+)
答案 1 :(得分:22)
如果您只想留出空间:
(?P<name>[\w\ ]+)
答案 2 :(得分:1)
这样做的最佳方法是允许其他字符使用'\ s',即任何空格,制表符和新行
(?P<name>[\w\s]+)
答案 3 :(得分:1)
我正在使用Django 2.2。
它使用Path converter: str处理URL中的%20(表示空格)
您只需要使用:
<name> or <str:name>
例如,以下示例加载在view.py中定义的视图“ some_view”
#urls.py
from django.urls import path
from . import views
urlpatterns = [
path("<name>",views.some_view),
....
]
以下函数在处理后呈现“ some.html”。在此示例中,将接收到的名称发送到“ some.html”。
#view.py
def some_view(request, name):
# process here
context = { "name" : name }
return render(request,"some.html",context)