【问题标题】:ImportError (djangobook chapter 3, part1, python version 2.7.2)ImportError(djangobook 第 3 章,第 1 部分,python 版本 2.7.2)
【发布时间】:2012-04-14 10:42:29
【问题描述】:

我正在关注 (http://www.djangobook.com/en/2.0/chapter03/) Djangobook 2,第 3 章,子章节“您的第一个 Django 支持的页面:Hello World”。

我收到 ImportError,“没有名为视图的模块”(请查看帖子末尾的网址)。

我使用的是 Python 2.7.2

我会一步一步完成我所做的一切:

$ pwd /home/name/Desktop/sc
$ django-admin.py startproject mysite2
$ cd mysite2

$ pwd /home/name/Desktop/sc/mysite2
$ ls -R
.:
manage.py  mysite2  views.py~

./mysite2:
__init__.py   settings.py   urls.py   urls.pyc  wsgi.pyc
__init__.pyc  settings.pyc  urls.py~  wsgi.py

然后我在~Desktop/sc/mysite2 中创建了views.py

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

然后我去了~Desktop/sc/mysite2/mysite2。 我将urls.py 更改为包含以下内容:

from django.conf.urls.defaults import *
from mysite2.views import hello

urlpatterns = patterns('',
    ('^hello/$', hello),
)

然后我在浏览器中运行python manage.py runserver in ´/home/name/Desktop/sc/mysite2. When I pastehttp://127.0.0.1:8000/` 得到以下屏幕:

http://tinypic.com/r/23th72v/5

【问题讨论】:

    标签: python django import


    【解决方案1】:

    更新:完全使用 Django 1.4.0-final

    总的来说,我建议重新执行startproject 步骤并从头开始;我将总结您需要采取的步骤:

    1) 创建一个新的 Django 项目

    $ django-admin.py startproject helloWorldProject
    

    这会创建一个新文件夹helloWorldProject,其中包含一些存根文件。

    2) 创建一个新文件views.py _INSIDE_ 你的helloWorldProject/helloWorldProject 文件夹。它应该包含以下代码:

    from django.http import HttpResponse
    
    def hello(request):
        return HttpResponse("Hello world")
    

    3) 更新urls.py 文件(与views.py 在同一文件夹内):

    from django.conf.urls.defaults import patterns, include, url
    
    urlpatterns = patterns('',
      url(r'^$', 'helloWorldProject.views.hello', name='hello'),
    )
    

    4) 使用已知命令运行您的服务器

    $ python manage.py runserver
    

    这应该会给你一些类似的输出

    Validating models...
    
    0 errors found
    Django version 1.4, using settings 'helloWorldProject.settings'
    Development server is running at http://127.0.0.1:8000/
    Quit the server with CONTROL-C.
    

    5) 检查您的“Hello World”视图是否有效 -- 将浏览器指向http://127.0.0.1:8000/

    注意:如果您定义像 ('^hello/$', 'helloWorldProject.views.hello', name='hello'), 这样的 URL 模式,则必须将浏览器指向 http://127.0.0.1:8000/hello/,否则您将收到 HTTP 404 错误消息...

    希望有帮助:)

    【讨论】:

    • 什么是$ PYTHONPATH=.. python manage.py runserver 已知命令?如果你组织 django 项目正确,你不需要在 python 路径上附加任何东西
    • "known" 相对于帖子历史:P 您确实可以省略 PYTHONPATH 设置,它仍然会起作用;冷静下来……
    • 嗯……恐怕会迷惑django初学者
    • 因为正如@San4ez 前面提到的,Django 的书已经过时了;它“涵盖 Django 1.0”,而 1.4 中的情况有所不同...
    • 1.4 之前的版本manage.pysettings.pyurls.py 位于同一文件夹中。现在它升级了 1 级
    【解决方案2】:

    Django book 描述了旧的 django 版本。引用Chapter 2

    官方版本有一个版本号,例如 1.0.3 或 1.1,并且 最新的总是在 http://www.djangoproject.com/download/.

    在最新的 1.4 项目布局中是 updated,因此请小心使用该书中的示例。建议你先试试官方文档中的tutorial

    我假设你应该在~Desktop/sc/mysite2/mysite2 附近的urls.py 中创建views.py

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 2012-05-02
      • 2019-11-05
      • 2012-07-11
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      相关资源
      最近更新 更多