我正在尝试完成Djangobook第3章的Your second view: Dynamic Content。
当我在浏览器中粘贴http://localhost:8000/time/
时,出现以下错误:
Django Version: 1.4
Exception Error: ImportError
cannot import name current_datetime
Exception Location: /home/name/Desktop/sc/mysite/mysite/urls.py in <module>, line 2
python version 2.7.2
然而,我的views.py和urls.py文件与示例和右侧文件夹相同。
我的views.py文件
import datetime
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
我的urls.py文件
from django.conf.urls.defaults import *
from mysite.views import hello, current_datetime
urlpatterns = patterns('',
('^hello/$', hello),
('^time/$', current_datetime),
)
这里出了什么问题?
(已添加到原帖:)
(编辑1)
我的目录结构。
(使用当前工作目录/home/name/Desktop/sc/mysite
)
name@name-Studio-1558:~/Desktop/sc/mysite$ ls -R
.:
manage.py mysite views.py views.py~
./mysite:
__init__.py settings.py urls.py urls.pyc wsgi.py
__init__.pyc settings.pyc urls.py~ views.pyc wsgi.pyc
(编辑2)
我从头开始使用名称mysite2
而不是mysite
再次完成整个章节,我现在甚至无法让第一部分工作:Hello World。':
ImportError (djangobook chapter 3, part1, python version 2.7.2)
在我改变脚本中的某些内容以使其工作之前,我无法重新创建之前所做的事情。
答案 0 :(得分:1)
将您的urls.py更改为此(假设您的应用名为 app )。:
urlpatterns = patterns('',
(r'^hello/$', 'app.views.hello'),
(r'^time/$', 'app.views.current_datetime'),
)
更新:项目的基本目录也应该包含空的__init__.py
文件。
答案 1 :(得分:0)
简短的回答是django 1.4版本的djangobook不是最新的。如果您正确地遵循第3章,您将遇到错误。默认情况下,在不同版本的django中,某些文件会在不同位置创建。
请参阅: ImportError (djangobook chapter 3, part1, python version 2.7.2)
因此暂时关注django文档会更好。