Django,重定向用户无法识别的网址(不只是404模板)

use*_*003 5 django

我以为我弄明白了,但发现了一些奇怪的东西.

在我的网址中

url('^page_1/$', handle_page_1),
url('^page_2/$', handle_page_2), 
url('^.*/$', handle_page_not_found),
Run Code Online (Sandbox Code Playgroud)

handle_page_not_found() 如果无法识别网址,则会相应地重定向用户.

这很好,但我发现了一些奇怪的东西.

如果函数返回

return HttpResponse("ok")
Run Code Online (Sandbox Code Playgroud)

然后"ok"返回,一切似乎都正常.但是,我刚刚看到它handle_page_not_found()也被调用(我用print语句测试过).它仍然是"ok"返回,但它首先执行代码handle_page_not_found().

那么,我怎么能有一个为无法识别的URL调用的函数,但是没有被HttpResponse对象调用?

编辑:根据答案,看到我的代码实际上很好,除了在特殊的测试情况.只要将HttpResponse返回到ajax调用(这是我通常使用它时),这一切都很好.

Ger*_*Yin 0

最可能的原因是您的浏览器正在向您的网站发出多个请求。

特别是,它可能会尝试请求/favicon.ico/.

request.path您可以通过显示处理程序何时被调用来确定。