目录

    Django的标准库存放在 django.contrib 包中。每个子包都是一个独立的附加功能包。 这些子包一般是互相独立的,不过有些django.contrib子包需要依赖其他子包

    在 django.contrib 中对函数的类型并没有强制要求 。其中一些包中带有模型(因此需要你在数据库中安装对应的数据表),但其它一些由独立的中间件及模板标签组成。

    django.contrib 开发包共有的特性是: 就算你将整个django.contrib开发包删除,你依然可以使用 Django 的基础功能而不会遇到任何问题。 当 Django 开发者向框架增加新功能的时,他们会严格根据这一原则来决定是否把新功能放入django.contrib中。

    django.contrib 由以下开发包组成:

    • admin : 自动化的站点管理工具
    • admindocs:为Django admin站点提供自动文档
    • auth : Django的用户验证框架
    • comments : 一个评论应用
    • contenttypes : 这是一个用于引入文档类型的框架,每个安装的Django模块作为一种独立的文档类型。
    • csrf : 这个模块用来防御跨站请求伪造(CSRF)
    • databrowse:帮助你浏览数据的Django应用
    • flatpages : 一个在数据库中管理单一HTML内容的模块
    • formtools:一些列处理表单通用模式的高级库。
    • gis:为Django提供GIS(Geographic Information Systems)支持的扩展
    • humanize : 一系列 Django 模块过滤器,用于增加数据的人性化。
    • localflavor:针对不同国家和文化的混杂代码段。
    • markup : 一系列的 Django 模板过滤器,用于实现一些常用标记语言。
    • redirects : 用来管理重定向的框架。
    • sessions : Django 的会话框架
    • sitemaps : 用来生成网站地图的 XML 文件的框架。
    • sites : 一个让你可以在同一个数据库与 Django 安装中管理多个网站的框架。
    • syndication : 一个用 RSS 和 Atom 来生成聚合订阅源的的框架。
    • webdesign:对设计者非常有用的Django扩展。

    其他django目录介绍:

    • conf。 主要有两个作用:(1) 处理全局配置, 比如数据库、加载的应用、 MiddleWare等 。(2) 处理urls配置, 就是url与view的映射关系。
    • core。 Django的核心处理库,包括url分析、处理请求、缓存等,其中处理请求是核心了,比如处理fastcgi就是由- wsgi.py处理。
    • db。 顾名思义,处理与数据库相关的,就是ORM。
    • dispatch (分派,派遣) 其实这不是Django原创,是pydispatch库,主要处 理消费者-工作者模式。
    • forms。 处理html的表单
    • middleware。 中间件,就是处理HTTP的request和response的,类似插件。比如默认的common中间件的一个功能:当一个页面没有找对对应的 pattern时, 会自定加上‘/’重新处理。比如访问/blog时,而定义的pattern是’^blog/$’, 所以找不到对应的pattern,会自动再用/blog/查找,当然前提是 APPEND_SLASH=True。
    • template。 Django的模板
    • templatetags。 处理 Application 的 tag 的 wrapper,就是将 INSTALLED_APPS 中所有的 templatetags 目录添加到 django.templatetags 目录中,则当使用 load blog 记载tag时,就可以使用 import django.templatetags.blog 方式加载了。不过这有一个问题,如果其他 Application目录中也有blog.py, 这会加载第一个出现blog.py的tag。
    • utils。 公共库,很多公用的类都在放在这里。
    • views 最基本的view方法。