Django how to set main page

前端 未结 4 1991
予麋鹿
予麋鹿 2021-01-07 18:38

i want to set a main page or an index page for my app. i tried adding MAIN_PAGE in settings.py and then creating a main_page view returning a main_page object, but it doesn\

相关标签:
4条回答
  • 2021-01-07 19:01

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

    0 讨论(0)
  • 2021-01-07 19:02

    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')
    
    0 讨论(0)
  • 2021-01-07 19:04

    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.

    0 讨论(0)
  • 2021-01-07 19:08

    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'),
    ...
    
    0 讨论(0)
提交回复
热议问题