我正在使用Ubuntu 10,python 2.6.5
我正在学习本教程:http://www.djangobook.com/en/2.0/chapter02
我使用剪切和粘贴遵循所有步骤。
自动创建了以下目录结构:
bill@ed-desktop:~/projects$ ls -l mysite
total 36
-rw-r--r-- 1 bill bill 0 2010-09-01 08:18 __init__.py
-rw-r--r-- 1 bill bill 546 2010-09-01 08:18 manage.py
-rw-r--r-- 1 bill bill 20451 2010-09-01 18:50 mysite.wpr
-rw-r--r-- 1 bill bill 3291 2010-09-01 08:18 settings.py
-rw-r--r-- 1 bill bill 127 2010-09-01 11:13 urls.py
-rw-r--r-- 1 bill bill 97 2010-09-01 08:20 views.py
from django.conf.urls.defaults import *
import sys
print sys.path
from mysite.views import hello
urlpatterns = patterns('',
(r'^hello/$', hello),
)
pylint产生此错误:无法导入'mysite.views'
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
bill@ed-desktop:~/projects/mysite$ python manage.py runserver
Validating models...
0 errors found
Django version 1.2.1, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
导致:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
1. ^hello/$
The current URL, , didn't match any of these.
为什么主目录中的view.py包含以下内容?
from mysite.views import hello
没有子目录'views'。虽然我熟悉使用软件包,但我从来没有必要创建自己的软件包,所以我有点困惑。我原以为from views import hello
是正确的。
分步教程看起来很直接,我没有看到其他人遇到过这个问题所以我有点困惑我做错了。
答案 0 :(得分:1)
我不确定你的实际问题是什么。
您已经请求了根页\
,但只定义了\hello\
的网址,因此很明显Django找不到您要求的内容。如果您希望hello
视图与网站根目录匹配,请执行以下操作:
urlpatterns = patterns('',
(r'^$', hello),
)
我不明白有关from mysite.views import hello
的问题。如果mysite
的父级位于Python路径上,这将起作用。
答案 1 :(得分:1)
你看到404错误,因为你没有默认的处理程序,添加到这样的url模式:
('^$', views.default )
并且您可能需要将Web应用程序路径添加到sys.path变量以便能够“看到”您的模块:
import sys
sys.path.append(path_to_site)