【发布时间】:2009-05-23 01:04:11
【问题描述】:
在学习Django和Python的过程中。我无法理解这一点。
(示例说明:'helloworld' 是我的项目的名称。它有 1 个名为 'app' 的应用程序。)
from helloworld.views import * # <<-- this works
from helloworld import views # <<-- this doesn't work
from helloworld.app import views # <<-- but this works. why?
似乎第 2 行和第 3 行实际上是相同的。为什么like #2 不起作用?
编辑 -- 添加两个文件的来源。 您可能会从 Django Book 项目 (http://www.djangobook.com/en/2.0) 中认出这段代码
helloworld/views.py
>from django.shortcuts import render_to_response
from django.http import HttpResponse, Http404
import datetime
def hello(request):
return HttpResponse("Hello world")
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
def offset_datetime(request, offset):
try:
offset = int(offset)
except ValueError:
raise Http404()
next_time = datetime.datetime.now() + datetime.timedelta(hours=offset)
return render_to_response('offset_datetime.html', locals())
def display_meta(request):
values = request.META.items()
values.sort()
path = request.path
return render_to_response('metavalues.html', locals())
helloworld/app/views.py
>from django.shortcuts import render_to_response
def search_form(request):
return render_to_response('search_form.html')
def search(request):
if 'q' in request.GET:
message = 'You searched for: %r' % request.GET['q']
else:
message = 'You searched for nothing.'
return render_to_response('search_results.html', locals())
【问题讨论】:
-
发布helloworld的实际来源?
-
导入 helloworld.views 作为视图是否有效?
-
你有文件 helloworld/__init__.py 吗?
-
是的,这里有 helloworld/__init__.py