Frage Anzeige einfacher HTML-Seiten DJango


Ich benutze derzeit Django 1.5 und kann nicht herausfinden, wie man eine einfache HTML-Seite anzeigt. Ich habe über klassenbasierte Ansichten gelesen, bin mir aber nicht sicher, ob ich das machen möchte.

Ich versuche, eine einfache index.html-Seite anzuzeigen, aber nach einigen Beispielen, die ich gesehen habe, muss ich diesen Code in app / views.py einfügen:

    def index(request):
        template = loader.get_template("app/index.html")
        return HttpResponse(template.render)

Gibt es einen Grund, warum meine index.html-Seite mit der App verbunden sein muss, die meinem django-Projekt zugeordnet ist? Für mich scheint es sinnvoller zu sein, eine index.html Seite dem Gesamtprojekt zuzuordnen.

Genauer gesagt, muss ich diesen Code in meiner Datei views.py verwenden, was muss ich in meine urls.py einfügen, um tatsächlich index.html zu erstellen?

BEARBEITEN:

Struktur des Django-Projekts:

webapp/
    myapp/
        __init__.py
        models.py
        tests.py
        views.py
    manage.py
    project/
        __init__.py
        settings.py
        templates/
            index.html
        urls.py
        wsgi.py

5
2018-03-28 04:24


Ursprung


Antworten:


urls.py

from django.conf.urls import patterns, url
from app_name.views import *

urlpatterns = patterns('',
    url(r'^$', IndexView.as_view()),
)

ansichten.py

from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = 'index.html'

Basierend auf @Ezequiel Bertti antworten, entfernen app

from django.conf.urls import patterns
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^index.html', TemplateView.as_view(template_name="index.html")),
)

Ihre index.html muss im Templates-Ordner gespeichert sein

webapp/
    myapp/
        __init__.py
        models.py
        tests.py
        views.py
        templates/      <---add
            index.html  <---add
    manage.py
    project/
        __init__.py
        settings.py
        templates/      <---remove
            index.html  <---remove
        urls.py
        wsgi.py

7
2018-03-28 05:00



Sie können eine GenericView von django core verwenden:

from django.conf.urls import patterns
from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^index.html', TemplateView.as_view(template_name="index.html")),
)

4
2018-03-28 04:44



Stellen Sie sicher, dass Sie den Pfad in setting.py konfiguriert haben. Wahrscheinlich löst es TemplateDoesNoteExist Fehler auf.

Sie können den folgenden Eintrag in settings.py platzieren.

SETTINGS_PATH = os.path.normpath (os.path.dirname (Datei))

TEMPLATE_DIRS = (     os.path.join (SETTINGS_PATH, 'Vorlagen'), )


0
2018-06-25 06:49