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方法。