Django项目结构

1、conf

主要有两个作用:

1) 处理全局配置, 比如数据库、加载的应用、 MiddleWare等;

   django默认会加载global_setting模块中的配置,但如果你定义了settings,会通过DJANGO_SETTINGS_MODULES环境变量加载模块,然后获得自定义的配置。

 2) 处理urls配置, 就是url与view的映射关系。

     urlconf会调用core的urlresovler模块的类和函数。

2、contrib (贡献)
 

  • django.contrib 主要的模块:
  • admin : 自动化的站点管理工具。 用户可登录/admin,管理后台数据库。
  • admindocs:为Django admin站点提供自动文档。 本书没有介绍这方面的知识;详情请参阅Django官方文 档。
  • auth : Django的用户验证框架。该包有用户内建模型,如User,我自己就用了它,当然,我自己也做了扩展,可见我的博客:网站用户模型扩展。
  • comments : 一个评论应用,详情请参阅 Django官方文档。我自己开发了一个评论系统,详情可见我的博客:网站评论系统设计。
  • contenttypes : 这是一个用于引入文档类型的框架,每个安装的Django模块作为一种独立的文档类型。 这个框架主要在Django内部被其他应用使用,它主要面向Django的高级开发者。 可以通过阅读源码来了 解关于这个框架的更多信息,源码的位置在 django/contrib/contenttypes/。
  • csrf : 这个模块用来防御跨站请求伪造(CSRF)。

3、core

   Django的核心处理库,包括url分析、处理请求、缓存,邮件,验证器等。我认为这是Django最重要的一部分。

4、db

    顾名思义,处理与数据库相关的,就是ORM。django的ORM我觉得是相当牛逼的,非常简单好用。

5、dispatch (分派,派遣)

   其实这不是Django原创,是pydispatch库,主要处理消费者-工作者模式。这个我没用过。

6、forms && newforms && oldforms
    处理html的表单,也有很多内置的表单可以使用。。

7、middleware

 
中间件,就是处理HTTP的request和response的,类似插件。比如默认的common中间件的一个功能:当一个页面没有找对对应的 pattern时,会自定加上‘/’重新处理。比如访问/blog时,而定义的pattern是‘^blog/$’,所以找不到对应的pattern,会自动再用/blog/查找,当然前提是 APPEND_SLASH=True。

8、template

Django的模板

9、templatetags


        处理Application的tag的wrapper,就是将INSTALLED_APPS中所有的templatetags目录添加到 django.templatetags目录中,则当使用 {{load blog}}记载tag时,就可以使用 import django.templatetags.blog 方式加载了。不过这有一个问题,如果其他Application目录中也有blog.py,这会加载第一个出现blog.py的tag。其实在 Django中,有许多需要处理重名的地方,比如template,需要格外小心,这个后续在介绍。

10、utils

   公共库,很多公用的类都在放在这里。

11、views

 内建的很多试图类和视图函数等等。

12、http

Request和response类,

主要转载于 http://m.oschina.net/blog/29439。

--------EOF---------
微信分享/微信扫码阅读