Джанго, как установить главную страницу - PullRequest
17 голосов
/ 08 июля 2010

Я хочу установить главную страницу или страницу индекса для моего приложения.я попытался добавить MAIN_PAGE в settings.py, а затем создать представление main_page, возвращающее объект main_page, но это не работает. Также я пытаюсь добавить в urls.py объявление типа

(r'^$', index),

где indexshouldбыть именем файла index.html в корневом каталоге (но он, очевидно, не работает)

Каков наилучший способ установки главной страницы на веб-сайте Django?

спасибо!

Ответы [ 4 ]

13 голосов
/ 08 июля 2010

Если вы хотите сослаться на статическую страницу (она не подвергается какой-либо динамической обработке), вы можете использовать функцию просмотра 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 находится в корне одного из ваших каталогов шаблонов.)

13 голосов
/ 21 марта 2016

Новый предпочтительный способ сделать это - использовать класс 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'),
]

Обратите внимание, я решил поместить любые статические страницы linke index.html в собственный каталог static_pages/ в каталоге templates/.

1 голос
/ 08 июля 2010

Вы можете использовать общую функцию просмотра direct_to_template:

# in your urls.py ...
...
url(r'^faq/$', 
    'django.views.generic.simple.direct_to_template', 
    { 'template': 'faq.html' }, name='faq'),
...
0 голосов
/ 21 марта 2019

В случае, если кто-то ищет обновленную версию ответа ..

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'^$', views.index, name='index')
]

и в вашем views.py

def index(req):
    return render(req, 'myApp/index.html')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...