Make a website with Django

From OpenHatch wiki


Work through the official Django tutorial, where you'll create an interactive poll application.


  • Learn the basics of the Django web application framework
  • Practice writing classes and thinking about inheritance
  • Practice using Python to interact with a database
  • Think about how web servers and clients interact

Project setup

Bold text'Italic text=== Install Django ===

Please follow the instructions in the official installation guide to install Django.

Test your installation

From a Python prompt, type:

import django

and hit enter. If nothing gets printed, you had no error importing the django library, so you've successfully installed Django!

Project steps

The official Django tutorial walks you through creating an interactive polling application in 4 parts.

1. Complete Part 1 of the tutorial

In this part, you'll create a new project, learn how to run your development server, set up a database, and create some models for your polling app. Some of the setup that you are doing in this section will make more sense once you start actually using the code a bit later in the tutorial -- don't worry if the purpose of some of the steps you are going through is a bit unclear at first.

After you've completed part 1:

Check your understanding: What is the relationship between the classes in and the database schema displayed when you run python sql polls.

This tutorial covered a lot of ground quickly. If you have any questions or want to learn more, wave over a staff member!

2. Complete Part 2 of the tutorial

After you've completed part 2:

Check your understanding: What did you have to do to get your poll app displayed on the admin index page?

3. Complete Part 3 of the tutorial

After you've completed part 3:

Check your understanding:

  1. Which of the following URL fragments matches this pattern from a sample
    • polls/ABC/results/
    • polls/12345/results/
    • polls//results/
  2. Why are templates a good idea?
  3. What is the purpose of template.render in this code snippet?
    def index(request):
        latest_poll_list = Poll.objects.order_by('-pub_date')[:5]
        template = loader.get_template('polls/index.html')
        context = Context({
            'latest_poll_list': latest_poll_list,
        return HttpResponse(template.render(context))

4. Complete Part 4 of the tutorial

After you've completed part 4:

Check your understanding: What is in request.POST?


You've built a website with Python and Django; this is a huge accomplishment. Keep practicing!