Django how to set main page

三世轮回 提交于 2019-12-01 02:27:58

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.)

ryanjdillon

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.

miku

You could use the generic direct_to_template view function:

# in your urls.py ...
...
url(r'^faq/$', 
    'django.views.generic.simple.direct_to_template', 
    { 'template': 'faq.html' }, name='faq'),
...

In case someone searching for an updated version of the answer..

from django.urls import re_path
from . import views

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

and in your views.py

def index(req):
    return render(req, 'myApp/index.html')
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!