Django module目录组成及功能
使用Python setup.py install命令从源代码安装完Django后,这些都会被拷贝到Python安装目录下的Lib/site-packages/django子目录中。之后我们使用Django的第一条命令大概就是使用django-admin.py startproject projectname来创建一个工程。django目录下的各文件如下:
- apps //应用起来时候的check操作?
- bin //可执行文件,django的PATH可以设置在这里,我们最常用的命令之一django-admin.py就在其中
- conf //这是对生成的一个Project和App的配置文件,包括建立Project或者App时候会拷贝到其下的Python代码模板,project_template下的文件全部新建到项目下,如果新建app则把app_template下的文件作为模板新建app的py文件,也包括全局范围的setting设置
- contrib //标准模块,开箱即用。就是说,没有它你也能活,有了它可以帮你减少很大的工作量。例如一个通用的Admin后台,用户认证组件,Session,站点地图等等。
- core //核心模块,cache-缓存后端,尤其内置的memcached, checks-各种检查,如缓存、数据库、model、注册、模板、url的配置,files-文件传输相关,handlers-各种handlers,如请求、中间件、异常等,mail-邮箱相关,management-各种命令管理,如model的migrate等,应用启动runserver的cmd(python runserver的运行的print数据在此,),及创建项目和app的相关命令等,serializers-简单的序列化器(rest框架有更完整的功能提供),servers-提供wsgiserver,同时此目录还提供异常、分页、信号、验证、签名等
- db //数据库接口,Django可以兼容很多数据库,包括MySQL、Oracle、Postgresql,甚至SQLite。Db中还包括数据模型Model的定义,使用这些定义,可以屏蔽底层DNMS的差异,包括事务处理。
- dispatch //信号相关模块
- forms //表单处理相关模块
- http //Http请求和应答等
- middleware //中间件。可以辅助系统在处理request之前先执行某些处理,返回response之前的处理,views视图处理上至下,如cache、劫持、csrf、压缩、安全等
- shortcuts //快捷方式,例如常用的render_to_response方法就在这里了,render/redirect等
- template和Templatetags //django模板引擎
- test //单元测试框架
- utils //实用小程序,如缓存、异常io、加密、日期时间、装饰器、编码、正则等等
- views //视图处理,如加装的装饰器(缓存、csrf,http),如视图相关-CBV,如404/500模板
- urls // url配置或映射相关,如常用的reverse,include等