Django Url找不到匹配的页面

时间:2015-04-16 09:38:18

标签: django django-urls

我有一个网址

http://127.0.0.1:8000/users/profiles/?profile=17320

我在urls.py文件中定义了这一行。

url(r'^profiles/(?P<profile>\d+)/$', views.display_profile),

并且在运行时,点击上面的网址,它没有打开页面,实际显示所有可用的网址列表。还有Page not found (404)

3 个答案:

答案 0 :(得分:3)

你的正则表达式匹配

http://127.0.0.1:8000/profiles/17320

http://127.0.0.1:8000/users/profiles/?profile=17320

所以应该修复。在django网址中也没有捕获params(比如?profile = ..)。

答案 1 :(得分:2)

您的网址与此类似

127.0.0.1:8000/profiles/542/

如果您想将个人资料ID用作GET参数,请更改您的网址以匹配

url(r'^profiles/$', views.display_profile),

在视图函数内部或get(self, request, *args, **kwargs)方法内的基于类的视图内部使用

获取参数
profile_id = request.GET.get('profile', None)      # where None is the value to use
                                                   # if profile does not exist

我希望这会有所帮助

我在回答您完全相同的问题之前写了另一个答案

How to access url part in python django?

答案 2 :(得分:1)

作为参数,查询字符串和url部分存在差异 你正在做的是查询字符串,你已经为url的一部分设置了url模式作为param 所以你的网址应该是http://127.0.0.1:8000/users/profiles/17320/

URL Dispatcher

了解详情