2009-06-09 17 views
20

Ho dato un'occhiata a Django e, da quello che ho visto, è davvero fantastico. Sono un po 'confuso, tuttavia, come faccio a implementare una "home page" per il mio sito web? Sarebbe un'app separata, o solo una vista all'interno del progetto, o cosa?Django - Home Page Sito Web

risposta

11

Non esiste una regola reale per questo, ma una cosa che mi piace fare è in realtà organizzare l'accesso dell'indice al reindirizzamento in un altro punto. Se preferisci, però, puoi semplicemente dare una semplice panoramica alla pagina indice.

Detto questo, è probabilmente una buona idea conservare tutto il codice in un'app reale, in modo da poterlo rifattorizzare più facilmente e in modo che appaia sul percorso python come un modulo normale. Mettere le viste nel progetto piuttosto che un'app sembra causare più mal di testa di quanto non risolva.

1

Il modo più semplice è utilizzare "Flatpages" di Django. Vedere questo link per maggiori informazioni: http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/

+2

Le flatpage funzionano come pubblicizzato, ma ho scoperto che non utilizzo quasi mai il contenuto statico. Ad esempio, una home page spesso deve visualizzare "primi dieci post" o diversi inserimenti in base alle preferenze dell'utente. – SingleNegationElimination

3

Ho appena trovato il mio approccio originale (direct_to_template) is deprecated in Django 1.5

Utilizzare invece un TemplateView per ottenere lo stesso risultato

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'), 
) 

(Per Django 1.4) È possibile impostare una direct_to_template url all'interno ./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 
) 

Per entrambi, posizionare il modello (index.html) nella radice TEMPLATE_DIRS. Questo è un approccio per creare una homepage senza implementare un'intera app. Ci sono molti modi per farlo accadere come altri hanno notato.

+0

Molto utile, grazie. Un cavillo: l'impostazione di Django è 'TEMPLATE_DIRS' con una S; può essere una lista. Non "TEMPLATE_DIR". –

+0

@ChrisJohnson aggiornato. Grazie. – bnjmn

Problemi correlati