在urls.py中进行django重定向

1 投票
1 回答
2215 浏览
提问于 2025-04-18 09:27

我打算在我的Django项目里放几个不同的应用,每个应用都是我想尝试的新技术。在我开发每个应用的时候,我希望根网址能自动跳转到我正在做的项目。

目录结构:

backyard/
    my_project/
        views.py
    backyard/
        urls.py

backyard/backyard/urls.py:

from django.conf.urls import patterns, include, url
from django.shortcuts import redirect

urlpatterns = patterns('',

    url(r'^$', redirect('my_app/')),
    url(r'^my_project/$', 'my_project.views.homepage'),

)

backyard/my_project/views.py

def homepage(request):
    return render_to_response('my_project/index.html', {'data':data})

当我访问这个页面 http:machine-name:8000/ 时,出现了一个错误,提示 包含的urlconf backyard.urls没有任何模式。我在我的urls.py里确实有网址,问题出在哪里呢?

1 个回答

6

一个URL配置需要把正则表达式和视图(也就是处理请求的函数)对应起来。redirect这个函数并不是返回一个视图,而是返回一个HttpResponse对象。你可以查看这个问题,里面有关于如何在URL配置中直接定义重定向的例子。

撰写回答