Django绝对简明手册(写作中) TableOfContents

张沈鹏     电子科技大学  生物医学工程/计算机科学与技术
你看到的此文档,可能不是最新的,
欢迎访问我的 Blog 了解最新的变化.
也欢迎加入我的Google讨论群,
讨论一切关于
C++,STL,Boost,
XML,CSS,Javascript,XUL
Python,Django
的问题

[http://groups.google.com/group/go2program 我的Google讨论群] [http://zsp.javaeye.com 我的Blog]

更新:2007.6 beta

1. 序言

现在学的东西很容易忘记,写这篇文章的目的是能让我在需要时快速找回当时的感觉. Find Fun !

许多细节在<<Django Step by Step>>中有介绍,我不重复.

2. 辅助工具

文本替换专家2.5 : 修改站名,APP模块名时用得到

3. View函数

向浏览器输出html等的函数.

from django.http import HttpResponse  
import datetime  

#View函数的第一个参数总是HttpRequest对象
#offset是一个string,值由url正则表达式匹配而得。
def hours_ahead(request, offset):  
   offset = int(offset)  
   dt = datetime.datetime.now() + datetime.timedelta(hours=offset)  
   html = "In %s hour(s), it will be %s." % (offset, dt)  
   return HttpResponse(html) 

4. Url匹配

(r'^now/plus\d+hours/$', hours_ahead)

可以匹配

/now/plus2hours/
/now/plus125hours/
/now/plus100000000000hours/

限制最多99小时,即只允许1个或2个数字

(r'^now/plus(\d{1,2})hours/$', hours_ahead)

常用正则表达式

.    任意字符  
\d        任意数字  
[A-Z]     从A到Z的任意字符(大写)  
[a-z]     从a到z的任意字符(小写)  
[A-Za-z]  从a到z的任意字符(大小写不敏感)  
[^/]+     任意字符直到一个前斜线(不包含斜线本身)  
+         一个或多个前面的字符  
?         零个或多个前面的字符  
{1,3}     1个到3个之间前面的字符(包括1和3)  

5. 模版

插入变量

<p>Sincerely,<br />{{ 变量名 }}</p>

块语句

{%if xxx%}
        <p>内容1</p>
{%else%}
        <p>内容2</p>
{%endif%}

过滤器

{{ship_date|date:"F j, Y"}}

6. 常用函数一览

django.http.HttpResponse(string) 向浏览器直接输出字符串