- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Django 框架架构简析
Django 框架架构简析 摘要 随着互联网的发展,越来越多的Web开发框架应运而生。Django就是其中一款既能节约开发时间又能让开发充满乐趣的流行开发框架。本文主要从架构方面简要介绍Django Web开发框架,通过分析其架构来探索为什么使用Django能够花费不多的时间构建和维护质量上乘的Web应用。 Web框架介绍 在互联网诞生之际,人们是通过编写标准的CGI程序来开发应用当多个动态页面需要同时连接数据库时,将会发生什么? 一个开发人员真的需要去关注如何输出Content-Type以及完成所有操作后去关闭数据库么?此类问题只会降低开发人员的工作效率,增加犯错误的几率。 如果这样的代码被重用到一个复合的环境中会发生什么?每个页面都分别对应独立的数据库和密码吗? 如果一个设计师,完全没有开发经验,但是又需要重新设计页面的话,又将发生什么呢? 以上正是框架致力于解决的问题。框架为应用程序提供了一套程序框架, 这样你可以专注于编写清晰、易维护的代码,而无需从头做起。从头开始编写网络应用程序。 从头编写另一个网络应用程序。 从第一步中总结(找出其中通用的代码),并运用在第二步中。 重构代码使得能在第 2 个程序中使用第 1 个程序中的通用代码。 重复 2-4 步骤若干次。 意识到发明了一个框架。 是从真实世界的应用中成长起来的,它是由堪萨斯州 Lawrence 城中的一个网络开发小组编写的。它诞生于 2003 年秋天,那时 Lawrence Journal-World 报纸的程序员 Adrian Holovaty 和 Simon Willison 开始用 Python 来编写程序。 当时他们的 World Online 小组制作并维护当地的几个新闻站点并在以新闻界特有的快节奏开发环境中逐渐发展.这些站点包括有 LJW、L 和 KU, 要求增加的特征或整个程序都能在计划时间内快速的被建立,这些时间通常只有几天或几个小时。因此为了需要,Adrian 和 Simon 开发了一种节省时间的网络程序开发框架, 这是在截止时间前能完成程序的唯一途径。 2005 年的夏天,当这个框架开发完成时,它已经用来制作了很多个 World Online 的站点。 当时 World Online 小组中的 Jacob Kaplan-Moss 决定把这个框架发布为一个开源软件。 他们在 2005 年的 7 月发布并取名为 ,来源于一个著名的爵士乐吉他演奏家 Reinhardt。 图1 Django架构总览图 从图中可以看去,Django使用的是非常清晰的分层结构,最上层是基本的网络通信处理,接下来是应用层,与传统的MVC模式稍有不同,采用的是独有的MTV模式,即Model,View,Template。 在传统的MVC模式中,M,Model层,是数据访问层,处理与数据相关的操作,如如何存取、如何确认有效性,哪些行为用到哪些数据等等,用于处理业务逻辑;V,View层,决定系统显示什么以及如何显示内容,用于与用户进行交互;C,Controller层,是Model层与View层沟通的桥梁,通过View层接收的输入选择相应Model进行处理并再使用合理的View展示给用户。 而在Django的MTV模式中,M依旧代表Model层,也是与数据处理相关的部分,与MVC模式相同;T,Template层,负责展示,决定数据如何显示;而V,虽然还是叫做View层,但由于展示相关的部分已有Template层完成,所以这里的View层主要负责业务逻辑,决定展示的时候需要调用的Template,也就是说在Django框架中的VC合起来相当于MVC中的V。至于MVC模式中的C则已经集成到框架本身,由框架自身完成相关工作,这比传统的MVC模式更进一步减少了程序员的工作,所以开发效率有了进一步的提高。 接下来是颇具特色的对象关系映射和模版引擎。对象关系映射(ORM)是指以Python类形式定义你的数据模型ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在中使用原始的SQL语句。 是一个纯文本文件,或是一个用模板语言标记过的普通的Python字符串,一个模板可以包含区块标签和变量。 图2 Django框架目录结构 Conf,主要有两个作用:1) 处理全局配置, 比如数据库、加载的应用、 MiddleWare等 2) 处理urls配置, 就是url与的映射关系。 ontrib,由的开发者贡献的功能模块,不过既然都已经随版本发布, 就表示是官方的。 Core的核心处理库,包括url分析、处理请求、缓存等,其中处理请 求是核心了,比如处理fastcgi就是由wsgi.py处理。 Db顾名思义,处理与数据库相关的,就是ORM。 Dispatch其
文档评论(0)