《Django Web 开发指南》。貌似使用Django1.0版本,基本内容差不多,细读无妨。地址:http://www.jb51.net/books/76079.html
(一)第一部分 入门
(1)内置数字工厂函数
int(12.34)会创建一个新的值为12的整数对象,而float(12)则会返回12.0。
(2)其他序列操作符
连接(+),复制(*),以及检查是否是成员(in, not in)
‘**‘.join(‘**‘) 或 ‘***%s***%d‘ % (str, int)
(3)生成器表达式
even_number = (x for x in range(1000) if x % 2 == 0)
(4)元组
tuple = (‘‘, ) #空元组定义
(5)enumerate
能让你同时迭代和计数的函数
for i, value in enumerate(data):
print i, value
(6)匿名函数
sum = lambda x, y: x+y
sum(a, b)
(7)函数装饰器 !!!
以‘@’开头,对函数进行‘包装’
(8)*args 和 **kwargs
*args :元组或列表形式
**kwargs :字典形式
(9)实例化
其他语言一般使用new来创建实例,Python使用的是‘初始化程序’initializer 而不是‘构造函数’constructor
即‘__init__‘函数
Python还支持动态的实例属性。可以‘凭空’创造实例的属性
(10)正则 !
(11)关于模块
Python有导入模块和加载模块之分。模块可以被导入多次,但只会被加载一次。
(12)可变性。!!!
可变性是指对象的值能否被改变。Python对象有:类型,标示符,值
拷贝:copy.copy() 深度拷贝:copy.deepcopy()
(13)动态网站基础
通信:http,URL,请求,响应
(14)不要重复自己(DRY)
(二)深入Django
(1)定义模型
模型变量(model field),模型类(model class),模型类元数据(model class metadata)
(2)为什么使用ORM
封装有用的方法,可移植性,安全性,表现力
(3)主键
使用 AutoField(),或者在某个变量上指定 primary_key = True
(4)模型间的关系 !!
ForeignKey,ManyToManyField,OneToOneField
对于反向访问,可以使用 **_set.all() 进行,也可以指定 related_name = **s 来访问。
对于多对多关系中。也可以通过 through = ‘***‘ 来指向一个显式的中间模型类。在这个类上可以添加额外的变量。
限制关系 : limit_choices_to = dict()
(5)模型的继承
抽象基础类(abstract base class)和多表继承(multi-table inheritance)
抽象基础类,纯Python继承。添加 class Meta: abstract = True #这样不会创建数据库表
唉,刚吃完晚饭。外面竟下起了瓢泼大雨。呆在出租房里竟有一丝的凉意。
--2014年08月09日21:01:08
七日Python之路--第十二天(Django Web 开发指南),布布扣,bubuko.com
七日Python之路--第十二天(Django Web 开发指南)
原文:http://my.oschina.net/lpe234/blog/299609