首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Django中显示静态页面

在Django中显示静态页面
EN

Stack Overflow用户
提问于 2014-04-02 03:10:09
回答 3查看 1.9K关注 0票数 3

我试图在Django项目中显示静态页面的内容。

urls.py :-

代码语言:javascript
复制
from django.conf.urls import patterns, include, url 
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'spollow.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    (r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'index.html'}),
    url(r'^admin/', include(admin.site.urls)),
)

index.html与urls.py位于同一个目录中。

我得到500个内部服务器错误。你知道我哪里出错了吗?

EN

回答 3

Stack Overflow用户

发布于 2014-04-02 03:12:24

首先,500错误中的堆栈跟踪表示错误可能是什么?您可能正在使用Django 1.6,因此对direct_to_template的调用是不可取的。

On Django 1.5或更高版本的您可以使用TemplateView

以下是文档中的示例

https://docs.djangoproject.com/en/dev/topics/class-based-views/

代码语言:javascript
复制
from django.conf.urls import patterns
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^about/', TemplateView.as_view(template_name="about.html")),
)

您可以在Django 1.4或更高版本的上使用视图

这是相关的文档

https://docs.djangoproject.com/en/1.4/ref/generic-views/#django-views-generic-simple-direct-to-template

代码语言:javascript
复制
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
    (r'^foo/$',             direct_to_template, {'template': 'foo_index.html'}),
    (r'^foo/(?P<id>\d+)/$', direct_to_template, {'template': 'foo_detail.html'}),
)

如果是后者,我将使用模块而不是字符串(查看示例中的导入)。

除此之外,没有500个细节,它将在黑暗中拍摄,你可能没有正确的模板,或一个不正确的路径,或一百万个不同的东西。

奖金票据

如果您只想为静态页面服务,最好是通过django前面的实际are服务器(nginx、apache等)提供服务,特别是在您期望大量流量的情况下。

票数 4
EN

Stack Overflow用户

发布于 2014-04-02 03:12:48

如果您的错误是由于找不到index.html而导致的

如果您的是app(即:由python manage.py startapp <app>创建的),那么:

然后django将搜索<app>/templates目录中的模板文件,如果您将应用程序添加到settings.py中的INSTALLED_APPS中。

因此,您需要在您的<app>中创建一个文件夹<app>,并将index.html放在其中。

如果您没有任何apps,则需要手动添加template path

打开settings.py,然后编辑TEMPLATE_DIRS

代码语言:javascript
复制
TEMPLATE_DIRS = (
    # Put the full path of the template dir here, like "/home/html/django_templates" or
    # "C:/www/django/templates". 
)
票数 1
EN

Stack Overflow用户

发布于 2014-04-02 03:38:45

在Django 1.5或更高版本中,您可以使用render函数而不是direct_to_template

代码语言:javascript
复制
from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    url(r'^$', 'django.shortcuts.render', {'template_name': 'index.html'}),
)

或者如果您更喜欢更复杂的方式:),您可以使用基于类的TemplateView

代码语言:javascript
复制
from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView

urlpatterns = patterns('',
    url(r'^$', TemplateView.as_view(template_name="index.html")),
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22800804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档