Django的学习借助于其强大的手册Django Book,该手册已经被翻译为中文。
一个最简单的Django项目可以由下面几个文件组成:
.
|- __init__.py
|- manage.py
|- setting.py
|- urls.py
|- views.py
|- mytemplate.html
运行manage.py文件来启动这个项目的web服务。
1 | $ python manage.py runserver 12.12.12.114:8080 |
首先看url.py文件,这里配置url与视图函数的映射。
下面我设置了三个url,第一个是首页,第三个是从url提取1个参数的情况。
1 | from django.conf.urls.defaults import * |
2 | from lucky.views import index |
3 | from lucky.views import hello |
4 | from lucky.views import welcome |
5 | urlpatterns = patterns('', |
8 | (r '^name/(.+)/$' , welcome), |
对url可以进行正则匹配的设计。
5 | + 匹配一个或更多 (例如, \d+ 匹配一个或 多个数字字符) |
7 | * 零个或一个之前的表达式(例如:\d? 匹配零个或一个数字) |
8 | * 匹配0个或更多 (例如, \d* 匹配0个 或更多数字字符) |
9 | {1,3} 介于一个和三个(包含)之前的表达式(例如,\d{1,3}匹配一个或两个或三个数字) |
然后视图文件,设置每个函数的响应方法,其中welcome视图函数引用了模板文件,该模板中有current_date和your_name两个变量。
current_date是由系统时间函数获得的,your_name是由url的参数获得的。
1 | from django.http import HttpResponse |
2 | from django.template import Template, Context |
4 | return HttpResponse( "Welcome!" ) |
6 | return HttpResponse( "Hello world." ) |
8 | def welcome(request, param1): |
9 | fp = open ( 'mytemplate.html' ) |
10 | t = Template( fp.read() ) |
12 | now = datetime.datetime.now() |
13 | c = Context({ 'current_date' : now, 'your_name' : param1}) |
15 | return HttpResponse(html) |
模板文件可以将视图和逻辑分离开。
3 | < meta charset = "UTF-8" /> |
8 | < h2 >{{ your_name }},欢迎你!</ h2 > |
10 | 当前时间: {{ current_date }}. |
对于这个项目,可以访问
12.12.12.114:8080
12.12.12.114:8080/hello
12.12.12.114:8080/name/~youname~