我正在尝试使用Django并根据官方网站上的教程创建应用程序。
所以我的urls.py
看起来像是:
urlpatterns = patterns('',
(r'^/$','ulogin.views.index'), #why doesn't this work?
(r'^ucode/$', 'ulogin.views.index'),
(r'^ucode/(\d+)/$', 'ulogin.views.index'),
)
我的views.py看起来像:
def index(request):
return HttpResponse("Hello, world. You're at the poll index.")
def redirect_to_index(request):
return HttpResponseRedirect('/ucode/')
当我运行服务器检查测试网址时,http://127.0.0.1:8000/ucode
正确显示“Hello,world ... etc”,并且工作得很好。我一直在搞乱urls.py,但我不知道如何让http://127.0.0.1:8000/
显示ulogin.views.index。
答案 0 :(得分:2)
它不起作用,因为当谈到django url时,web服务器的根的特征是空字符串,如此 - > ^$
。因此,只需将^/$
更改为^$
即可。
答案 1 :(得分:2)
首先,要匹配的模式
(r'^/$','ulogin.views.index')
应该是
(r'^$','ulogin.views.index')
此外,尝试匹配以下网址会引发错误
(r'^ucode/(\d+)/$', 'ulogin.views.index'),
因为没有将\d+
作为参数的查看方法。
我推荐的解决方案是:
(r'^ucode/(<?P<id>[\d]+)/$', 'ulogin.views.index'),
然后
def index(request, id=None):
return HttpResponse("Hello, world. You're at the poll index.")
您可以在此处详细了解named URL groups