Django, как настроить главную страницу
Я хочу установить главную страницу или страницу индекса для моего приложения.
я попытался добавить MAIN_PAGE в settings.py, а затем создать представление main_page, возвращающее объект main_page, но он не работает
Кроме того, я пытаюсь добавить в urls.py объявление типа
(r'^$', index),
где index должно быть именем файла index.html в корневом каталоге (но, очевидно, не работает)
Каков наилучший способ установки главной страницы на сайте Django?
спасибо!
Ответы
Ответ 1
Если вы хотите сослаться на статическую страницу (если она не прошла какую-либо динамическую обработку), вы можете использовать функцию просмотра direct_to_template
из django.views.generic.simple
. В вашем URL conf:
from django.views.generic.simple import direct_to_template
urlpatterns += patterns("",
(r"^$", direct_to_template, {"template": "index.html"})
)
(Предполагая, что index.html
находится в корне одного из ваших каталогов шаблонов.)
Ответ 2
Новый предпочтительный способ сделать это - использовать класс TemplateView
. См. Этот SO ответ, если вы хотите перейти от direct_to_template
.
В основном файле urls.py
:
from django.conf.urls import url
from django.contrib import admin
from django.views.generic.base import TemplateView
urlpatterns = [
url(r'^admin/', admin.site.urls),
# the regex ^$ matches empty
url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'),
name='home'),
]
Примечание. Я выбираю статические ссылки для ссылок index.html
в свой собственный каталог static_pages/
в каталоге templates/
.
Ответ 3
Вы можете использовать общую функцию просмотра direct_to_template
:
# in your urls.py ...
...
url(r'^faq/$',
'django.views.generic.simple.direct_to_template',
{ 'template': 'faq.html' }, name='faq'),
...