WD5 - разработка сайтов

Статичная главная страница для 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,
            }),
    )
None