Create a new web project called sigcse. We will use
this project for all other examples. Type at the command line:
django-admin.py startproject sigcse
This creates a new folder named sigcse. Change to
that directory with the following command line:
cd sigcse
This folder should contain the following four files:
| File Name | Description |
|---|---|
__init__.py
|
Used to indicate that the current folder is a Python package. |
manage.py
|
Utility script that allows you to interact with the current Django project in various ways. |
settings.py
|
Configuration file for this Django project. |
urls.py
|
The URL mappings for this Django project. |
Run the web server to see if it works correctly. Type at the command line:
python manage.py runserver
Now, visit http://localhost:8000/ with your Web
browser. You should see a welcome page.
Create a templates folder. At the command line
type:
mkdir templates
Tell Django the location of your templates folder.
Edit the sigcse/settings.py file. Add a line
similar to the one being highlighted:
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/home/aortiz/sigcse/templates',
)
Create a base.html file and place it in the
templates folder. The contents of this file should
be:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
body {
background: #FFFFFF;
color: #000080;
font-family: sans-serif;
font-size: medium;
margin: 20px;
}
hr {
border: 0;
color: #B0C4DE;
background-color: #B0C4DE;
height: 1px;
}
table {
border-collapse: collapse;
border: 1px solid #000000;
padding: 0px;
margin-bottom: 10px;
color: #000000;
background: #E6E6FA;
}
td {
border: 1px solid #000000;
padding: 10px;
text-align: center;
}
th {
border: 1px solid #000000;
padding: 10px;
color: #008080;
background: #B0E0E6;
}
.footer {
font-size: 70%;
color: #B0C4DE;
text-align: center;
}
</style>
<title>
{% block title %}No Title{% endblock %}
</title>
</head>
<body>
{% block main %}
{% endblock %}
<hr/>
<p class="footer">
Workshop: <em>Web Development with Python and Django</em>
<br/>
<strong>SIGCSE 2009</strong>
</p>
</body>
</html>
Create a new application called hello. At the
command line, type:
python manage.py startapp hello
Create a hello.html file in the templates
folder. The contents of this file should be:
{% extends "base.html" %}
{% block title %}Hello{% endblock %}
{% block main %}
<h1>Hello {{ name }}!</h1>
<p>
Yes! This is my first Django Web page.
</p>
{% endblock %}
Create a view that sends information to the template. Edit the
file sigcse/hello/views.py so that it has the
following content:
from django.shortcuts import render_to_response
def say(request, name):
return render_to_response('hello.html', {'name': name})
Link the view function with a URL pattern. Edit the
sigcse/urls.py file by adding the highlighted line:
urlpatterns = patterns('',
# Example:
# (r'^sigcse/', include('sigcse.foo.urls')),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# (r'^admin/(.*)', admin.site.root),
(r'^hello/(\w+)/$', 'sigcse.hello.views.say'),
)
http://localhost:8000/hello/World/