首页 > 代码库 > 七日Python之路--第十二天(Django Web 开发指南)

七日Python之路--第十二天(Django Web 开发指南)

    《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