Please enable Javascript to view the contents

Django 标准库介绍

 ·  ☕ 3 分钟

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

微信公众号
作者
微信公众号