6

我目前正在使用 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 中放入什么才能真正索引.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
4

3 回答 3

10

网址.py

from django.conf.urls import patterns, url
from app_name.views import *

urlpatterns = patterns('',
    url(r'^$', IndexView.as_view()),
)

视图.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
于 2013-03-28T05:00:20.200 回答
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")),
)
于 2013-03-28T04:44:14.977 回答
0

确保您已在 setting.py 中配置了路径。可能它会解决 TemplateDoesNoteExist 错误。

您可以将以下内容放在 settings.py 中。

SETTINGS_PATH = os.path.normpath(os.path.dirname( file ))

TEMPLATE_DIRS = ( os.path.join(SETTINGS_PATH, 'templates'), )

于 2014-06-25T06:49:39.300 回答