Django how to set main page
The new preferred way of doing this would be to use the TemplateView
class. See this SO answer if you would like to move from direct_to_template
.
In your main urls.py
file:
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'),
]
Note, I choose to put any static pages linke index.html
in its own directory static_pages/
within the templates/
directory.
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.)