我正在学习django的教程:http://www.djangobook.com/en/2.0/chapter03/
并遵循了每一步的话(我认为)。然而,即使是最基本的Hello World也无法正常工作。
视图.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
脚本会做这样的事情。
当您在视图函数中获得TypeError
时,视图函数的参数不匹配。
- 检查它是否将所需的
request
作为其第一个参数 - 确保
urlpatterns
中的所有关键字参数都已就位
示例:
url(r'^user/(?name[w-]+)/$', 'user')
def user(request, name):
#Your logic