Make a website with Django

From OpenHatch wiki
Jump to navigation Jump to search
Django pony.jpg

Project[edit]

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

Goals[edit]

  • 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[edit]

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

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

Test your installation[edit]

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[edit]

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

1. Complete Part 1 of the tutorial[edit]

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 models.py and the database schema displayed when you run python manage.py 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[edit]


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[edit]


After you've completed part 3:

Check your understanding:

  1. Which of the following URL fragments matches this pattern from a sample urls.py?
    r'^polls/(?P<poll_id>\d+)/results/$'
    • 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[edit]


After you've completed part 4:

Check your understanding: What is in request.POST?

Congratulations![edit]

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

Fireworks.png [[File:Balloons.png|150p