问题描述
我有两个URL发送。一个在 http://domain.com/thisword
上捕获单词,而第二个调度是 http://domain.com/上的站点地图sitemap.xml的
。当前代码不正确的是: urlpatterns = patterns('',
url(ur' ?P< search_word> [ÆØÅæøåa-zA-Z] *)/?$','website.views.index_view',name ='website_index'),
url(r'^ sitemap\.xml $' ,'django.contrib.sitemaps.views.sitemap',{'sitemaps':sitemaps}),
)
所以基本上第一个dispatch捕获所有东西,包括 sitemap.xml
。是否可以按照以下方式进行多次调度?
好的问题。 (感谢您在这里发布完整的代码,现在我看看你以后是什么,我想)最简单的解决方案是扭转这样的模式:
urlpatterns = patterns('',
url(r'^ sitemap\.xml $','django.contrib.sitemaps.views.sitemap',{'sitemaps':sitemaps} ),
url(ur'(?P< search_word> [ÆØÅæøåa-zA-Z] *)/?$','website.views.index_view',name ='website_index'),
)
调度员在找到匹配的那一刻发送。因此,如果一个网址匹配上述 urlpatterns
中的 r'^ sitemap\.xml $
,调度员将不会继续到第二个模式
I have a two URL dispatches. One that catches words on http://domain.com/thisword
, while the second dispatch is a sitemap on http://domain.com/sitemap.xml
. The current code which does not work correct is:
urlpatterns = patterns('',
url(ur'(?P<search_word>[ÆØÅæøåa-zA-Z]*)/?$', 'website.views.index_view', name='website_index'),
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)
So basically the first dispatch catches everything, including sitemap.xml
. Is it possible to have multiple dispatches in following fashion?
Good question. (Thanks for posting the full code here. Now I see what you are after, I think.) The easiest solution would be to reverse the patterns like this:
urlpatterns = patterns('',
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
url(ur'(?P<search_word>[ÆØÅæøåa-zA-Z]*)/?$', 'website.views.index_view', name='website_index'),
)
The dispatcher dispatches the moment it finds a match. So if a url matches r'^sitemap\.xml$
in the urlpatterns
above, the dispatcher will not continue to the second pattern
这篇关于使用正则表达式发送多个URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!