0

あなたの 2 番目のビュー: Djangobook の動的コンテンツ 第 3 章を完成させようとしています。

ブラウザに貼り付ける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

mysite2(編集 2) の代わりに名前を使用して、章全体を最初からやり直しましmysiteた。最初の部分を動作させることさえできません: Hello World . )

スクリプト内の何かを変更して機能させる前に、以前に行ったことを再現することはできません。

4

2 に答える 2

1

urls.py を次のように変更します (アプリの名前が app であると仮定します)

urlpatterns = patterns('',
    (r'^hello/$', 'app.views.hello'),
    (r'^time/$', 'app.views.current_datetime'),
)

更新: プロジェクトのベース ディレクトリにも空の__init__.pyファイルを含める必要があります。

于 2012-04-13T14:52:42.240 に答える
0

簡単な答えは、djangobook が django バージョン 1.4 に対して最新ではないということです。第 3 章を正しく実行すると、エラーが発生します。特定のファイルは、異なるバージョンの django 内でデフォルトで異なる場所に作成されます。

参照: ImportError (djangobook の第 3 章、パート 1、python バージョン 2.7.2)

したがって、当面は django のドキュメントに従うことをお勧めします。

于 2012-04-14T15:02:36.303 に答える