2009-06-09 19 views
20

He estado echando un vistazo a Django y, por lo que he visto, es bastante fantástico. Sin embargo, estoy un poco confundido sobre cómo implementar una "página de inicio" para mi sitio web. ¿Sería una aplicación separada, o solo una vista dentro del proyecto, o qué?Django - Sitio web Página de inicio

Respuesta

11

No hay una regla real para esto, pero una cosa que me gusta hacer es en realidad organizar el acceso al índice para redirigir a otro lugar. Sin embargo, si lo prefiere, puede dar una simple vista a la página de índice.

Dicho esto, probablemente sea una buena idea mantener todo el código en una aplicación real, para que pueda refactorizarlo más fácilmente, y para que aparezca en la ruta de Python como un módulo normal. Poner puntos de vista en el proyecto en lugar de una aplicación parece causar más dolores de cabeza de lo que resuelve.

1

La manera más fácil es utilizar las "páginas planas" de Django. Vea este enlace para más información: http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/

+2

Flatpages funciona como se anuncia, pero he descubierto que casi nunca uso contenido estático. Por ejemplo, una página de inicio a menudo necesitará mostrar 'top ten posts' o diferentes insertos según las preferencias del usuario. – SingleNegationElimination

3

Acabo de encontrar mi enfoque original (direct_to_template) está en desuso en Django 1.5

lugar, utilice un TemplateView para lograr el mismo resultado

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

(Para Django 1.4) Es posible configurar una direct_to_template url dentro ./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 
) 

Para ambos, coloque la plantilla (index.html) en su raíz TEMPLATE_DIRS. Este es un enfoque para crear una página de inicio sin implementar una aplicación completa. Hay muchas maneras de hacer que esto suceda, como otros han notado.

+0

Muy útil, gracias. Una objeción: la configuración de Django es 'TEMPLATE_DIRS' con una S; puede ser una lista. No 'TEMPLATE_DIR'. –

+0

@ChrisJohnson actualizado. Gracias. – bnjmn

Cuestiones relacionadas