主页:https://www.djangoproject.com/
使用 Django 和 Python 开发 Web 站点: http://www.ibm.com/developerworks/cn/linux/l-django/

0.  简介
:Django 项目是一个python定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
  1. 用于创建模型的对象关系映射
  2. 为最终用户设计的完美管理界面
  3. 一流的 URL 设计
  4. 设计者友好的模板语言
  5. 缓存系统。
Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2

django logo

005年7月, 并于2008年9月发布了第一个正式版本1.0 。

Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。

1.  地位:(百度百科)由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者[1]

2.  架构设计

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
层次
职责
模型(Model),即数据存取层
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
模板(Template),即表现层
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
视图(View),即业务逻辑层
存取模型及调取恰当模板的相关逻辑。模型与模板之间的桥梁。

     从以上表述可以看出Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。
至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作.在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情.所以。它比MVC框架考虑的问题要深一步.因为我们程序员大都写程序在控制层。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。

3设计哲学

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
Django基于MVC的设计十分优美:
  • 对象关系映射 (ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。
  • URL 分派:使用正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活
  • 模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。
  • 表单处理:你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。
  • Cache系统:可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。
  • 会话(session),用户登录与权限检查,快速开发用户会话功能。
  • 国际化:内置国际化系统,方便开发出多种语言的网站。
  • 自动化的管理界面:不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于内容管理系统。

4.工作机制

1.用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py

工作机制

2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。
3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)
4.最后该view函数负责返回一个HttpResponse对象。

5.部署

Django可以运行在Apache上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,已经支持Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支持 Django的某些部分,国内支持的平台有(SAE)Sina App Engine,(BAE)百度应用引擎。

6.文档

Django1.0 建立了强大完整的文档体系,,涵盖了Django的方方面面,并且适合各种水平的读者和开发者. 其中还包含若干个简单的示例,你可以跟随他们一步步体验Django的优美。

7.翻译一下主页

The Django framework --- Django框架

Object-relational mapper---  对象关系映射

Define your data models entirely in Python. You get a rich, dynamic database-access API for free — but you can still write SQL if needed.

在Python中确定数据模型,你可以获得丰富易用的动态数据库接口,也可以自己写SQL接口。

Automatic admin interface---自动管理界面

Save yourself the tedious work of creating interfaces for people to add and update content.Django does that automatically, and it's production-ready.

把自己从繁琐的界面设计中解放出来,Django为你自动完成。

Elegant URL design---优雅的URL设计

Design pretty, cruft-free URLs with no framework-specific limitations. Be as flexible as you like.

优美的设计,不令人讨厌的弹性设计。

Template system---模板系统

Use Django's powerful, extensible and designer-friendly template language to separate design, content and Python code.

使用Django有力的、可扩增的、设计友好的模板语言 完成设计、内容和编码。

Cache system---缓存系统

Hook into memcached or other cache frameworks for super performance — caching is as granular as you need.

更好表现的颗粒状的缓存系统

Internationalization---国际化

Django has full support for multi-language applications, letting you specify translation strings and providing hooks for language-specific functionality.

更有力的多语言支持,让你自由地翻译....

....................每次进步都得靠翻译..................

关于Django综述相关推荐

  1. python框架03 -- Django综述

    简介 主要内容: Django运用.序列化.前后端分离.数据库连接.token头.数据交互 更新: 不定期更新,遇到相关问题则会添加到其中,若有问题请留言或者右下角直接联系 虚拟环境安装 安装 安装p ...

  2. python twisted和flask_Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)

    上篇 Python基础第1章 Python基础知识2 1.1 Python综述3 1.1.1 了解Python的特性及版本3 1.1.2 安装Python5 1.1.3 使用Python原生编辑器8 ...

  3. Django框架学习

    Django是现在世界上python语言应用最广泛.发展最成熟的web框架.它足够完整 ,不需要依赖其他就可以开发出 非常完整的web应用.Django的主要内容如下: Django综述:了解Djan ...

  4. python高效开发实战--djangotornadoflasktwisted(第2版_Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)...

    上篇 Python基础第1章 Python基础知识2 1.1 Python综述3 1.1.1 了解Python的特性及版本3 1.1.2 安装Python5 1.1.3 使用Python原生编辑器8 ...

  5. 企业级开发框架---Django(一)

    这次学习Python世界中应用最广泛的.发展最成熟的Django Web框架.因为Django足够完整,所以使用Django自身就可以开发出非常完整的Web应用,并不需要借助像SQLAlchemy之类 ...

  6. Django管理后台之登录

    Django提供了一套身份验证和授权的权限系统,允许验证用户凭证,并定义每个用户允许执行的操作. 权限系统框架包括了用户和分组的内置模型,用于登录用户的权限,指定用户是否可以执行任务.表单.视图,以及 ...

  7. django 类视图装饰器_灵活视图处理的模式,第2部分–使用装饰器

    django 类视图装饰器 For years, we've been so busy discussing the virtues and drawbacks of the model/contro ...

  8. Python为什么这么火,它能做什么?——Python编程语言应用综述

    随着现在科技的不断进步,计算机行业近年来飞速发展,其中Python编程语言更是以黑马之势登顶最热门高级语言排行榜. 本篇博客对Python编程语言应用进行综述,介绍Python的起源与发展,并列举Py ...

  9. 基于Python仓库管理系统的设计与实现django框架

    摘 要 随着信息化时代的到来,系统管理都趋向于智能化.系统化,仓库管理系统也不例外,但目前国内的有些公司仍然都使用人工管理,公司规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化, ...

最新文章

  1. Linux设备驱动--块设备(三)之程序设计(转)
  2. rest-framework 分页器
  3. 1113 Integer Set Partition (25 分)【难度: 一般 / 知识点: 思维 贪心】
  4. 查看torch依赖的cuda版本_torch多GPU情况下模型建立遇到的问题
  5. mysql报错1172该怎样解决_ORA-01172、ORA-01151错误处理
  6. linux烧录文件的格式,制作emmc 烧录文件
  7. js中当等于最小值是让代码不执行_从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理...
  8. C#多线程编程实战(二)
  9. .NET 4 实践 - 使用dynamic 和MEF实现轻量级的 AOP 组件 (1)
  10. java基于ssm+mysql的宠物店管理系统 计算机毕业设计
  11. Renesas:RH850的FCL库移植与使用
  12. PostGIS 报错libcrypto
  13. JavaScript实现浏览器特定区域截屏和下载功能
  14. linux双核cpu调试软死锁问题,记一次linux通过jstack定位CPU使用过高问题或排查线上死锁问题...
  15. 上传多张图片到oss服务器
  16. NGUI-动画Tween
  17. 华硕飞行堡垒键盘背光灯无法显示怎么办?
  18. 【Java容器】Java容器框架解析
  19. 知乎如何通过关键字搜索文章
  20. 多个excel表格合并成一个表格文件

热门文章

  1. Navisworks Api Tool
  2. 「 ThoughtWorks面试 —— 一次愉快的技术交流 | 掘金技术征文」
  3. 20172307 2017-2018-2 《程序设计与数据结构》第9 周学习总结
  4. 微软概述 Windows Server 2008 的定价、包装及授权
  5. Oracle 9i安装后,配置和启动企业管理器的详细过程
  6. 发现不错的文章,推!
  7. LinuxWindows下批量修改文件后缀
  8. spring学习笔记---Jackson的使用和定制
  9. 选择Asp for javascript,非.net。
  10. List中toArray()的使用方法