2 How to Make a Home Page


If you have the development server running, close it by doing Ctrl-C.

Now you can create a new Django app:

django-admin startapp accounts

It is called accounts here because the longer term goal for this series will be to create an entire login authentication and registration system.

In your project you now need to “install” the Django app you just created. Go to the tutorial folder that you created in your project’s tutorial/settings.py file add another element in the INSTALLED_APPS list:

    'accounts',

So now your entire INSTALLED_APPS list should look like this:

INSTALLED_APPS = [
    'accounts',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Now that the new accounts app has been installed, we also need to tell Django how we’re going to get to the new accounts app.

In the main url configuration, point Django to the accounts app when the user goes to (in this case) /account. Go to tutorial/urls.py and add a line to the urlpatterns (which was defined on the initial creation of our Django project):

    url(r'^account/', include('accounts.urls')),

We also need to import include so that line 16 now reads:

from django.conf.urls import url, include

Putting that all together we should now have in tutorial/urls.py:

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^account/', include('accounts.urls')),
]

Including'accounts.urls' here means that when someone makes a request to /account that Django will point them to the urls/py file in the accounts app (that’s the one that we installed earlier).

You may have noticed that that file doesn’t exist yet so let’s create a new file in `accounts/urls.py:

from django.contrib.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.home),
]

This tells Django to go to the not yet defined home view function in search of a HTTP response of some kind to be able to send back to the user (or client) that made the initial request. Let’s define that in accounts/views.py:

from django.shortcuts import render, HttpResponse

# Create your views here
def home(request):
    return HttpResponse('Home page!')

Now you should be able to go to localhost:8000/account to see your brand new, Django powered home page!