Статичная главная страница для django (без написания кода)
При создании нового сайта на главной странице не всегда требуется динамическое содержимое, иногда хочется вначале сделать дизайн. В этом случае главную страницу можно задавать следующим образом, сразу в файле urls.py
Для новых версий django
from django.views.generic.base import TemplateView
urlpatterns += patterns(
"",
(
r"^$",
TemplateView.as_view(template_name='main.html')
)
)
Для старых версия django
from django.views.generic.simple import direct_to_template
urlpatterns += patterns("", (r"^$", direct_to_template,{"template": "index.html"}))
Пояснение:
Для рендера статичной страницы шаблона можно использовать функцию direct_to_template
из django.views.generic.simple
, его подключаем в файл URL конфигурации (по умолчанию это urls.py)
В файле settings.py должна быть определена директория шаблонов, и в ней производится render файла index.html
Оригинал сообщения на англ. (ответ на сайте stackoverflow.com)
If you want to refer to a static page (not have it go through any dynamic processing), you can use the direct_to_template view function from django.views.generic.simple. In your URL conf:
from django.views.generic.simple import direct_to_template
urlpatterns += patterns("",
(r"^$", direct_to_template, {"template": "index.html"})
)
(Assuming index.html is at the root of one of your template directories.)
Пример полного файла urls.py
from django.conf.urls import patterns, include, url
from django.views.generic.simple import direct_to_template
from django.conf import settings
urlpatterns = patterns('',
url(r"^$", direct_to_template, {"template": "index.html"})
)
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
)