我目前正在使用Django 1.5并且无法弄清楚如何显示简单的html页面。我一直在阅读有关基于类的视图,但我不确定这是我想要做的。
我正在尝试显示一个简单的index.html页面,但根据一些示例,我看到我需要将此代码放在app / views.py中:
def index(request):
template = loader.get_template("app/index.html")
return HttpResponse(template.render)
为什么我的index.html页面必须与我的django项目关联的应用程序相关联?对我来说,将index.html页面与整个项目相对应似乎更有意义。
更重要的是,在我的views.py文件中使用此代码,我需要在urls.py中添加什么才能真正实现index.html?
编辑:
Django项目的结构:
webapp/
myapp/
__init__.py
models.py
tests.py
views.py
manage.py
project/
__init__.py
settings.py
templates/
index.html
urls.py
wsgi.py
答案 0 :(得分:7)
<强> urls.py 强>
from django.conf.urls import patterns, url
from app_name.views import *
urlpatterns = patterns('',
url(r'^$', IndexView.as_view()),
)
<强> views.py 强>
from django.views.generic import TemplateView
class IndexView(TemplateView):
template_name = 'index.html'
根据@Ezequiel Bertti的回答,删除app
from django.conf.urls import patterns
from django.views.generic import TemplateView
urlpatterns = patterns('',
(r'^index.html', TemplateView.as_view(template_name="index.html")),
)
您的index.html必须存储在模板文件夹
中webapp/
myapp/
__init__.py
models.py
tests.py
views.py
templates/ <---add
index.html <---add
manage.py
project/
__init__.py
settings.py
templates/ <---remove
index.html <---remove
urls.py
wsgi.py
答案 1 :(得分:4)
您可以使用django核心的GenericView:
from django.conf.urls import patterns
from django.views.generic import TemplateView
urlpatterns = patterns('',
(r'^index.html', TemplateView.as_view(template_name="index.html")),
)
答案 2 :(得分:0)
确保您已在setting.py中配置路径。可能它会解决TemplateDoesNoteExist错误。
您可以将以下内容放在settings.py。
中SETTINGS_PATH = os.path.normpath(os.path.dirname( file ))
TEMPLATE_DIRS =( os.path.join(SETTINGS_PATH,&#39; templates&#39;), )