I\'ve been having a look at Django and, from what I\'ve seen, it\'s pretty darn fantastic. I\'m a little confused, however, how I go about implementing a \"home page\" for my we
There's no real rule for this, But one thing I like to do is actually arrange for the index access to redirect to another spot. If you prefer, though, you can just give the index page a plain view.
That said, It's probably a good idea to keep all your code in an actual app, so that you can refactor it more easily, and so that it appears on the python path as a normal module. Putting views in the project rather than an app seems to cause more headaches than it solves.
I just found my original approach (direct_to_template
) is deprecated in Django 1.5
Instead, use a TemplateView
to achieve the same result
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) You can setup a direct_to_template
url within ./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
)
For both, place the template (index.html
) in your TEMPLATE_DIRS
root. This is one approach to create a homepage without implementing an entire app. There are many ways to make this happen as others have noted.
The easiest way is using Django's "Flatpages". See this link for more info: http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/