1
felixzhu Sep 19, 2015
URL 正则为什么要去匹配参数
|
2
guoqiao Sep 19, 2015
1. 匹配数字应该是\d, 而不是\w
2. django 定义 url 的时候并不会理会问号后面的 get 参数, 你应该自己通过 request.GET.get ('key')获取. 3. 对于变长的数字参数使用 \d+即可, 无需指定固定位数. 4. 你的 url 里括号不匹配. 正确的格式是: url (r'^book/(?P<user_id>\d+)/(?P<book_id>\d+)/$', views.book, name='book') |
3
Damnever Sep 19, 2015
不知道 http://127.0.0.1/book/?user_id=12345/1234567890/ 是几个意思,? 后面的不是 query string 么?
|
6
cheerzeng OP @guoqiao
1. 这里是个笔误,因为真实代码是中间包含字符跟下划线之类的,把问题简化了一下,忘记改正则了,谢谢提醒。 2. 是的,如果不用? user_id = 12345 这种链接的话, 用两个? P 的方法确实是通过 get 可以取到。目前用的就是这个。你的意思是用 http://127.0.0.1/book/?user_id=12345/1234567890/ 这种形式,也是可以用你说的 url (r'^book/(?P<user_id>\d+)/(?P<book_id>\d+)/$', views.book, name='book') 这个匹配? 我的理解是 http://127.0.0.1/book/?user_id=12345 应该不会匹配到(?P<user_id>\d+) 吧?我回头试试 3.学习了。 4, 应该也是笔误。 |