我正在关注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)
这应该是如此简单,但它只是不起作用!
答案 0 :(得分:1)
请理解,对于效率,不为每个请求自动重新加载所有文件是很有意义的。即使只检查是否有任何修改是生产服务器的相当昂贵的操作。有时您可以为开发系统启用此功能(如果存在此类选项,请参阅手册)。默认情况下,有很多充分的理由不启用自动重新加载。特别是,太多的人最终会在他们的生产系统上启用它并抱怨性能......
另一个原因是临时状态通常不一致,特别是当编辑影响多个文件时。然后,自动重新加载可能会导致错误,可以通过完成编辑然后重新加载来避免。 (尽管如此,生产系统不建议在线编辑文件。但是,同步过程正在运行;您不希望服务器在仍在同步时重新加载。)
在某些情况下,可以使用Linux上的inotify等技巧让操作系统通知应用程序进行文件更改。我想manage.py
脚本会做这样的事情。
答案 1 :(得分:0)
当您在视图函数中获得TypeError
时,视图函数的参数不匹配。
request
是它的第一个参数。urlpatterns
中的所有关键字参数都已到位。示例:
url(r'^user/(?name[\w\-]+)/$', 'user')
def user(request, name):
#Your logic