Skip to main content
 首页 » 编程设计

python之非常基本的 django 教程产生错误 : TypeError at/hello/, hello() takes no arguments (1 given)

2025年05月04日22hnrainll

我正在学习本 Django 教程: http://www.djangobook.com/en/2.0/chapter03/

并且已经遵循了每个步骤(我认为)。但是,即使是最基本的 Hello World 也无法正常工作。

views.py

from django.http import HttpResponse 
 
def hello(response): 
    return HttpResponse("Hello world") 

urls.py

from django.conf.urls.defaults import * 
from myproject.views import hello 
 
urlpatterns = patterns('', 
    ('^hello/$', hello), 
) 

服务器产生这个错误:

TypeError at /hello/ 
hello() takes no arguments (1 given) 

这应该很简单,但就是行不通!

请您参考如下方法:

请理解,为了效率,不为每个请求自动重新加载所有文件很有意义。对于生产 服务器来说,即使只是检查它们中的任何一个是否被修改也是一项相当昂贵的操作。有时您可以为开发系统启用此功能(如果存在此类选项,请参阅手册)。默认情况下不启用自动重新加载有很多充分的理由。特别是,太多的人最终会在他们的生产系统上启用它并提示性能......

另一个原因是临时状态通常会不一致,特别是当编辑影响多个文件时。自动重新加载可能会导致错误,而通过完成编辑然后重新加载可以避免该错误。 (不过,对于在线编辑文件的生产系统来说,这仍然是不可取的。但是假设同步过程正在运行;您不希望服务器在它仍在同步时重新加载。)

在某些情况下,可以使用 linux 上的 inotify 等技巧让操作系统通知应用程序文件更改。我猜 manage.py 脚本会做这样的事情。