django url 匹配的一个奇怪的错误

2014-05-05 17:11:04 +08:00
 larkifly
url(r'^people\?page=(\d+)$', views.PersonalHome),
url(r'^people/(\d+)/$', views.PersonalHome),
如上的两个url配置

现在
http://127.0.0.1:8000/people?page=2无法匹配

http://127.0.0.1:8000/people/3/可以匹配

错在哪了?
2399 次点击
所在节点    Python
3 条回复
messense
2014-05-05 17:41:00 +08:00
alexkh
2014-05-05 18:02:40 +08:00
@messense 确实是这样。
官方文档里有解释,对http://www.example.com/myapp/?page=3之类的请求,URLconf 会寻找myapp/。忽略掉参数及其值。

请见tutorial第三部分,https://docs.djangoproject.com/en/1.6/intro/tutorial03/
messense
2014-05-05 18:11:28 +08:00
@alexkh 看来我猜的不错,哈哈。cc @larkifly 官方是这样说的:

Note that these regular expressions do not search GET and POST parameters, or the domain name. For example, in a request to http://www.example.com/myapp/, the URLconf will look for myapp/. In a request to http://www.example.com/myapp/?page=3, the URLconf will also look for myapp/.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/111231

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX