2009-06-09 21 views
20

Oglądałem Django i, z tego, co widziałem, jest to fantastyczne. Jestem trochę zdezorientowany, jak mam wdrożyć "stronę główną" mojej strony internetowej? Czy byłaby to osobna aplikacja, czy tylko widok w ramach projektu, czy co?Django - Strona internetowa Strona główna

Odpowiedz

11

Nie ma prawdziwych zasad dla tego, ale jedną rzecz, którą lubię robić, jest faktyczne zorganizowanie dostępu do indeksu w celu przekierowania do innego miejsca. Jeśli wolisz, możesz po prostu pokazać stronę indeksu jako zwykły widok.

To powiedziawszy, to prawdopodobnie dobry pomysł, aby zachować cały kod w rzeczywistej aplikacji, dzięki czemu można łatwiej ją refaktoryzować i aby pojawiał się na ścieżce python jako normalny moduł. Umieszczanie widoków w projekcie zamiast w aplikacji wydaje się powodować więcej bólów głowy niż rozwiązuje.

1

Najprostszym sposobem jest użycie "Flatpages" Django. Zobacz ten link, aby uzyskać więcej informacji: http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/

+2

Flatpages działa tak jak w reklamie, ale odkryłem, że prawie nigdy nie używam statycznej zawartości. Na przykład strona główna często będzie musiała wyświetlać "dziesięć pierwszych wpisów" lub różne wstawki w zależności od preferencji użytkownika. – SingleNegationElimination

3

Właśnie znalazłem mój oryginalny podejście (direct_to_template) jest przestarzała w Django 1.5

Zamiast używać TemplateView aby osiągnąć ten sam rezultat

from django.conf.urls import patterns, include, url 
from django.views.generic import TemplateView 

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

(For Django 1.4) Można skonfigurować Adres URL: direct_to_template w ciągu ./project/project/urls.py

from django.conf.urls import patterns, include, url 
from django.views.generic.simple import direct_to_template 

urlpatterns = patterns('', 
    (r'^$', direct_to_template, { 'template': 'index.html'}), 
    # add urls to apps here 
) 

W przypadku obu, umieść szablon (index.html) w katalogu głównym . Jest to jedno podejście do tworzenia strony głównej bez implementacji całej aplikacji. Istnieje wiele sposobów, aby tak się stało, jak zauważyli inni.

+0

Bardzo pomocne, dzięki. Jeden spór - ustawienie Django to 'TEMPLATE_DIRS' z S; może być listą. Nie "TEMPLATE_DIR". –

+0

@ChrisJohnson updated. dzięki. – bnjmn

Powiązane problemy