timeit import error(djangobook chapter 3,part2,python version 2.7.2)

时间:2012-04-13 14:44:08

标签: python django import

我正在尝试完成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)

在我改变脚本中的某些内容以使其工作之前,我无法重新创建之前所做的事情。

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文档会更好。