Django 通过 URL conf 传递多个单词
Django pass multiple words through a URL conf
使用 django,我想通过我的 URL conf 中的一个变量来命名我的项目。假设我的产品名称是 "stack overflow" 我希望能够访问:
http://127.0.0.1:8000/product/stack+overflow/
但我得到的是 "page not found" 404 页面。当名称只是单词时它确实有效,但不是多个单词。
我的urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^product/(?P<name>\w+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)
您需要扩展正则表达式以匹配您希望在 url 中允许的其他字符。
在您允许字母数字字符和 +
的情况下,这应该有效:
urlpatterns = patterns('',
url(r'^product/(?P<name>[\w\+]+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)
使用 django,我想通过我的 URL conf 中的一个变量来命名我的项目。假设我的产品名称是 "stack overflow" 我希望能够访问:
http://127.0.0.1:8000/product/stack+overflow/
但我得到的是 "page not found" 404 页面。当名称只是单词时它确实有效,但不是多个单词。
我的urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^product/(?P<name>\w+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)
您需要扩展正则表达式以匹配您希望在 url 中允许的其他字符。
在您允许字母数字字符和 +
的情况下,这应该有效:
urlpatterns = patterns('',
url(r'^product/(?P<name>[\w\+]+)/$', 'crunch.views.product_by_name', name='preview_by_name'),
)