主要内容
1.Django框架发展
2.Django架构,MTV模式
3.开发流程
4.开发实例——Poll
python下各种框架
一个完整的Web应用框架包括下面功能的支持
服务发布
URL分发
模板支持
数据库处理
Python框架一般都支持前3个方面,按对4个功能的支持情况分类如下:
平台性框架:不依赖数据库,更关注服务的高校构建和运行平台的稳定。代表性框架:Zope和Twisted
轻小型框架:认为数据库不是应用的必要因素,更关注友好快速的简单任务的开发。代表性框架:Cherry,Quixote和web.py,没有内置的数据库支持模块。
一站式框架:认为数据库是应用的重要因素,关注如何仅基于本身快速实现一个功能性网站。代表性框架:Django,TurboGears
Django简介
Django(维基百科) Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。
Django 于 2008年6月17日正式成立基金会。
Django吸引人的特点
在Python各种web框架中,Django的文档最完善、市场占有率最高、招聘职位最多!
优点
l完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Djangobook)。
l全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stackframework
+ batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,开发网站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。
l强大的URL路由配置,Django让你可以设计出非常优雅的URL,在Django里你基本可以跟丑陋的GET参数说拜拜。
l自助管理后台,admin interface是Django里比较吸引眼球的一项contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。
缺点(源自Django坚持自己造所有的轮子,整个系统相对封闭)
l系统紧耦合,如果你觉得Django内置的某项功能不是很好,想用喜欢的第三方库来代替是很难的,比如下面将要说的ORM、Template。要在Django里用SQLAlchemy或Mako几乎是不可能,即使打了一些补丁用上了也会让你觉得非常非常别扭。
lDjango自带的ORM远不如SQLAlchemy强大,除了在Django这一亩三分地,SQLAlchemy是Python世界里事实上的ORM标准,其它框架都支持SQLAlchemy了,唯独Django仍然坚持自己的那一套。Django的开发人员对SQLAlchemy的支持也是有过讨论和尝试的,不过最终还是放弃了,估计是代价太高且跟Django其它的模块很难合到一块。
lTemplate功能比较弱,不能插入Python代码,要写复杂一点的逻辑需要另外用Python实现Tag或Filter。
lURL配置虽然强大,但全部要手写,这一点跟Rails的Conventionover configuration的理念完全相左,高手和初识Django的人配出来的URL会有很大差异。
l让人纠结的auth模块,Django的auth跟其它模块结合紧密,功能也挺强的,就是做的有点过了,用户的数据库schema都给你定好了,这样问题就来了,比如很多网站要求email地址唯一,可schema里这个字段的值不是唯一的,纠结是必须的了。
lPython文件做配置文件,而不是更常见的ini、xml或yaml等形式。这本身不是什么问题,可是因为理论上来说settings的值是能够动态的改变的(虽然大家不会这么干),但这不是最佳实践的体现。
Django大包大揽,用它来快速开发一些Web运用是很不错的。如果你顺着Django的设计哲学来,你会觉得Django很好用,越用越爽;相反,你如果不能融入或接受Django的设计哲学,你用Django一定会很痛苦,趁早放弃的好。
组件
Django框架的核心包括:一个 面向对象 的映射器,用作数据模型(以Python类的形式定义)和关联性数据库间的媒介;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。
核心框架中还包括:
l一个轻量级的、独立的Web服务器,用于开发和测试。
l一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。
l一个缓存框架,并有几种缓存方式可供选择。
l中间件支持,允许对请求处理的各个阶段进行干涉。
l内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。
l一个序列化系统,能够生成或读取采用XML或JSON表示的Django模型实例。
l一个用于扩展模板引擎的能力的系统。
内置应用
Django 包含了很多应用在它的"contrib"包中,这些包括:
- 一个可扩展的认证系统
- 动态站点管理页面
- 一组产生 RSS 和 Atom 的工具
- 一个灵活的评论系统
- 产生Google 站点地图 (Google Sitemaps)的工具
- 防止跨站请求伪造(cross-site request forgery)的工具
- 一套支持轻量级标记语言(Textile和Markdown)的模板库
- 一套协助创建地理信息系统(GIS)的基础框架
服务的部署
Django 可以运行在启用了
mod python 的
Apache 2上,或是任何WSGI兼容的Web服务器。Django也有启动FastCGI服务的能力,因此能够应用于任何支持FastCGI的机器上。
下列数据库引擎被Django官方支持:
MicrosoftSQL Server的适配器正在开发中,处于试验阶段。(注:SQL
Server的支持在1.0版本中已经被完全去除)
Django1.0已经可以利用Jython运行在任何J2EE服务器。
开发简单应用的步骤
1. 进入目标文件夹,建立项目django-admin.pystartproject mysite。Django框架自动为我们建立所需要的项目文件夹和一些配置文件
2. 进入项目文件夹,建立应用django-admin.py startapppolls。Django框架会自动生成所需要的models.py和views.py等文件
3. 编辑settings.py,将新建的应用Polls,加入到项目中,INSTALLEN_APPS加入一行,‘mysite.polls’,
4. 配置urls.py,加入期望的url规则,访问mysite.polls.views中的方法
5. 编辑views.py,编写2个方法
6. 启动内置开发服务器,django python manage.pyrunserver
7. 在浏览器中输入http://localhost:8000/访问测试页面
1. 另注:数据库连接中。python 2.5及以后的版本内涵sqlite数据库,不需要另外安装。name是一定要是包含完整路径的文件名称。若文件原本不存在,在使用同步数据库后,系统会为每个应用自动创建所需要的table,其他数据库都必须填写用户名和密码,并且需要事先创建好数据库。
2. app可以放在任何python路径上。放在与manage.py同级目录中,将作为该工程的顶级模块,而不是mysite的子模块。
3. 如果写view时采用硬编码方式,要改变页面显示方式,就要改变python代码。解决方案:利用template系统从python中分离出设计。解决方案:利用template系统从python中分离出设计
应用部署
详见Django book
Django框架开发效率
用django构建的网站
http://www.djangosites.org/官方展示
在该网站上可以获得一个应用网站的源码,以供学习参考。
l 欧洲一个日化网上商店
l http://www.chinesehour.com/中文学习网站
l 焦点网站http://www.focus.com/ 焦点观察,与专家对话。框架非常适合
l 国际象棋俱乐部https://secure.chess.com/chesspark.html在线国际象棋
l 代码管理网站 http://dpaste.com/
参考资料
http://www.360doc.com/content/09/1206/13/50698_10483406.shtml#Django MVC模式,Django发展
http://simple-is-better.com/news/385#digRuby 跟 Python 本质上不同,Python是非常简约的语言
http://www.360doc.com/content/12/0229/11/2902158_190487111.shtml浅谈五大Python Web框架
http://djangobook.py3k.cn/2.0/DjangoBook2.0中文翻译(很好)
Django官网https://www.djangoproject.com/
http://codinn.com/projects/django-best-practices/view/Django最佳实践
分享到:
相关推荐
Django:Django框架简介与环境搭建.docx
四、Django 框架简介 Django 是劳伦斯出版集团的开发人员为开发新闻内容网站而设计出来的一个软件。Django 遵循 MVC 思想,但是有自己的一个名词,叫做 MVT。 五、MVT 各部分功能 * M:Model,模型,和数据库进行...
Python基于Django框架实现的一个学生信息管理系统源码 Python基于Django框架实现的一个学生信息管理系统源码 Python基于Django框架实现的一个学生信息管理系统源码 Python基于...
Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例Django 框架 项目 实例
"Django框架完整版" Django框架是什么? Django是一个免费、开源的Python Web框架,用于快速开发安全、可维护的网站。它提供了一个结构化的方式来编写Web应用程序,使得开发者可以快速构建高质量的Web应用程序。 ...
基于Django框架的智能点餐系统源码+数据库(毕业设计).zip基于Django框架的智能点餐系统源码+数据库(毕业设计).zip基于Django框架的智能点餐系统源码+数据库(毕业设计).zip基于Django框架的智能点餐系统源码+数
使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 使用Django框架开发的企业OA管理系统源码 ...
python django框架入门简介,什么是django,安装方法,使用方法
django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,Django的优缺点.zip django:Django框架详解,...
Python基于Django框架网站设计源码.zipPython基于Django框架网站设计源码.zipPython基于Django框架网站设计源码.zipPython基于Django框架网站设计源码.zipPython基于Django框架网站设计源码.zipPython基于Django框架...
使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用DJANGO框架的简单应用程序使用...
使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器使用DJANGO框架的URL缩短器...
使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库管理系统使用DJANGO框架的库...
【标题】:“django框架学习笔记” 【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码...
django框架学习笔记(源代码及文档) :“django框架学习笔记” :“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的...
二、Django 框架简介 Django 是从真实世界的应用中成长起来的,由堪萨斯州 Lawrence 城中的一个网络开发小组编写的。它诞生于 2003 年秋天,那时 Lawrence Journal-World 报纸的程序员 Adrian Holovaty 和 Simon ...
**1.1 Django框架简介** Django是一个开源的Web框架,用Python语言编写,它遵循MVC(Model-View-Controller)架构的设计思想,但为了更好地适应Web开发的需求,Django采用了一种略有不同的模式——MVT(Model-View-...
【Django框架基础教程】 Django是一个用Python语言编写的开源Web应用框架,它遵循Model-View-Controller(MVC)的设计模式。Django因其强大的功能和高效性,在Python Web开发领域占据着重要地位,被广泛应用于众多...
【基于Django框架的美食博客】是一个利用Python的Django Web框架开发的在线平台,专为分享美食制作、交流烹饪心得而设计。这个博客系统具备完整的用户交互功能,包括用户登录、发布帖子、评论互动、点赞以及上传图片...
使用DJANGO框架的简单测验应用程序使用DJANGO框架的简单测验应用程序使用DJANGO框架的简单测验应用程序使用DJANGO框架的简单测验应用程序使用DJANGO框架的简单测验应用程序使用DJANGO框架的简单测验应用程序使用...