我试图在Django项目中显示静态页面的内容。
urls.py :-
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个内部服务器错误。你知道我哪里出错了吗?
发布于 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/
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或更高版本的上使用视图
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等)提供服务,特别是在您期望大量流量的情况下。
发布于 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
TEMPLATE_DIRS = (
# Put the full path of the template dir here, like "/home/html/django_templates" or
# "C:/www/django/templates".
)发布于 2014-04-02 03:38:45
在Django 1.5或更高版本中,您可以使用render函数而不是direct_to_template
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^$', 'django.shortcuts.render', {'template_name': 'index.html'}),
)或者如果您更喜欢更复杂的方式:),您可以使用基于类的TemplateView
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")),
)https://stackoverflow.com/questions/22800804
复制相似问题