当前位置: 首页 > news >正文

现在还有用dw做网站衡阳网建天地

现在还有用dw做网站,衡阳网建天地,策划公司有哪些,网站建设所需要的材料目前Python的网络编程框架已经多达几十个#xff0c;逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处#xff0c;本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架#xff1a;Django、Tornado、Flask、Twisted。 …目前Python的网络编程框架已经多达几十个逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架Django、Tornado、Flask、Twisted。 网络框架及MVC架构 所谓网络框架是指这样的一组Python包它能够使开发者专注于网站应用业务逻辑的开发而无须处理网络应用底层的协议、线程、进程等方面。这样能大大提高开发者的工作效率同时提高网络应用程序的质量。 在目前Python语言的几十个开发框架中几乎所有的全栈网络框架都强制或引导开发者使用MVC架构开发Web应用。所谓全栈网络框架是指除了封装网络和线程操作还提供HTTP栈、数据库读写管理、HTML模板引擎等一系列功能的网络框架。本文重点讲解的Django、Tornado和Flask是全栈网络框架的典型标杆而Twisted更专注于网络底层的高性能封装而不提供HTML模板引擎等界面功能所以不能称之为全栈框架。 MVCModel-View-Controller模式最早由Trygve Reenskaug在1978年提出在20世纪80年代是程序语言Smalltalk的一种内部架构。后来MVC被其他语言所借鉴成为了软件工程中的一种软件架构模式。MVC把Web应用系统分为3个基本部分。 模型Model用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法是Web应用程序中用于处理应用程序的数据逻辑的部分Model只提供功能性的接口通过这些接口可以获取Model的所有功能。Model不依赖于View和Controller它们可以在任何时候调用Model访问数据。有些Model还提供了事件通知机制为在其上注册过的View或Controller提供实时的数据更新。 视图View负责数据的显示和呈现View是对用户的直接输出。MVC中的一个Model通常为多个View提供服务。为了获取Model的实时更新数据View应该尽早地注册到Model中。 控制器Controller负责从用户端收集用户的输入可以看成提供View的反向功能。当用户的输入导致View发生变化时这种变化必须是通过Model反映给View的。在MVC架构下Controller一般不能与View直接通信这样提高了业务数据的一致性即以Model作为数据中心。 这3个基本部分互相分离使得在改进和升级界面及用户交互流程时不需要重写业务逻辑及数据访问代码。MVC架构如图1所示。 MVC架构图 注意MVC在除Python外的其他语言中也有广泛应用例如VC的MFC、Java的Structs及Spring、C#的.NET开发框架读者应该有深刻的体会。 4种Python网络框架Django、Tornado、Flask、Twisted 接下来学习当今主流的4种Python网络框架。 企业级开发框架——Django Django于2003年诞生于美国堪萨斯Kansas州最初用来制作在线新闻Web站点于2005年加入了BSD许可证家族成为开源网络框架。Django根据比利时的爵士音乐家Django Reinhardt命名作者这样命名Django意味着Django能优雅地演奏开发功能丰富的乐曲Web应用。 它是当前Python世界里最负盛名且最成熟的网络框架。最初用来制作在线新闻的Web站点目前已发展为应用最广泛的Python网络框架。Django的各模块之间结合得比较紧密所以在功能强大的同时又是一个相对封闭的系统但是其健全的在线文档及开发社区使开发者在遇到问题时能找到解决方法。 Django框架的特点 相对于Python的其他Web框架Django的功能是最完整的Django定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着Django模块之间紧密耦合开发者需要学习Django自己定义的这一整套技术。Django的主要特点如下。 完善的文档经过10多年的发展和完善Django有广泛的应用和完善的在线文档开发者遇到问题时可以搜索在线文档寻求解决方案。集成数据访问组件Django的Model层自带数据库ORM组件使开发者无须学习其他数据库访问技术dbi、SQLAlchemy等。强大的URL映射技术Django使用正则表达式管理URL映射因此给开发者带来了极高的灵活性。后台管理系统自动生成开发者只需通过简单的几行配置和代码就可以实现完整的后台数据管理Web控制台。错误信息非常完整在开发调试过程中如果出现运行异常则Django可以提供非常完整的错误信息帮助开发者定位问题比如缺少xxx组件的配置引用等这样可以使开发者马上改正错误。 高并发处理框架——Tornado Tornado是使用Python编写的一个强大的可扩展的Web服务器。它在处理高网络流量时表现得足够强健却在创建和编写时有着足够的轻量级并能够被用在大量的应用和工具中。Tornado作为FriendFeed网站的基础框架于2009年9月10日发布目前已经获得了很多社区的支持并且在一系列不同的场合中得到应用。除FriendFeed和Facebook外还有很多公司在生产上转向Tornado包括Quora、Turntable.fm、Bit.ly、Hipmunk及MyYearbook等。 相对于其他Python网络框架Tornado有如下特点。 完备的Web框架与Django、Flask等一样Tornado也提供了URL路由映射、Request上下文、基于模板的页面渲染技术等开发Web应用的必备工具。 是一个高效的网络库性能与Twisted、Gevent等底层Python框架相媲美提供了异步I/O支持、超时事件处理。这使得Tornado除了可以作为Web应用服务器框架还可以用来做爬虫应用、物联网关、游戏服务器等后台应用。提供高效HTTPClient除了服务器端框架Tornado还提供了基于异步框架的HTTP客户端。提供高效的内部HTTP服务器虽然其他Python网络框架Django、Flask也提供了内部HTTP服务器但它们的HTTP服务器由于性能原因只能用于测试环境。而Tornado的HTTP服务器与Tornado异步调用紧密结合可以直接用于生产环境。完备的WebSocket支持WebSocket是HTML5的一种新标准实现了浏览器与服务器之间的双向实时通信。 因为Tornado的上述特点Tornado常被用作大型站点的接口服务框架而不像Django那样着眼于建立完整的大型网站所以本章着重讲解Tornado的异步及协程编程、身份认证框架、独特的非WSGI部署方式。 支持快速建站的框架——Flask Flask是Python Web框架族里比较年轻的一个于2010年出现这使得它吸收了其他框架的优点并且把自己的主要领域定义在了微小项目上。同时它是可扩展的Flask让开发者自己选择用什么数据库插件存储他们的数据。很多功能简单但性能卓越的网站就是基于Flask框架而搭建的比如http://httpbin.org/就是一个功能简单但性能强大的HTTP测试项目。Flask是一个面向简单需求和小型应用的微框架。 相对于其他Python语言的Web框架而言Flask的特点可以归结如下。 内置开发服务器和调试器 网络程序调试是在将编制好的网站投入实际运行前用手工或编译程序等方法进行测试修正语法错误和逻辑错误的过程。有经验的开发者都知道这是保证网站系统能够正式应用的必要步骤。 Flask 自带的开发服务器使开发者在调试程序时无须再安装其他任何网络服务器比如Tomcat、JBoss、Apache等。Flask默认处于调试状态使得运行中的任何错误会同时向两个目标发送信息一个是Python Console即启动Python程序的控制台另一个是HTTP客户端即Flask开发服务器将调试信息传递给了客户端。与Python单元测试功能无缝衔接 单元测试是对最小软件开发单元的测试其重点测试程序的内部结构主要采用白盒测试方法由开发人员负责。单元测试的主要目标是保证函数在给定的输入状态下能够得到预想的输出在不符合要求时能够提醒开发人员进行检查。 Flask提供了一个与Python自带的单元测试框架unitest无缝衔接的测试接口即Flask对象的test_client()函数。通过test_client()函数测试程序可以模拟进行HTTP访问的客户端来调用Flask路由处理函数并且获取函数的输出来进行自定义的验证。使用Jinja2模板 将HTML页面与后台应用程序联系起来一直是网站程序框架的一个重要目标。Flask通过使用Jinja2模板技术解决了这个问题。Jinja2是一个非常灵活的HTML模板技术它是从Django模板发展而来的但是比Django模板使用起来更加自由且更加高效。Jinja2模板使用配制的语义系统提供灵活的模板继承技术自动抗击XSS跨站攻击并且易于调试。完全兼容WSGI 1.0标准 WSGIWeb Server Gateway Interface具有很强的伸缩性且能运行于多线程或多进程环境下因为Python线程全局锁的存在使得WSGI的这个特性至关重要。WSGI已经是Python界的一个主要标准各种大型网路服务器对其都有良好的支持。WSGI位于Web应用程序与Web服务器之间与WSGI完全兼容使得Flask能够配置到各种大型网络服务器中。 基于Unicode编码 Flask是完全基于Unicode的。这对制作非纯ASCII字符集的网站来说非常方便。HTTP本身是基于字节的也就是说任何编码格式都可以在HTTP中传输。但是HTTP要求在HTTP Head中显式地声明在本次传输中所应用的编码格式。在默认情况下Flask会自动添加一个UTF-8编码格式的HTTP Head使程序员无须担心编码的问题。 底层自定义协议网络框架——Twisted 以上讲到的3个Python Web框架都是围绕着应用层HTTP展开的而Twisted是一个例外。Twisted是一个用Python语言编写的事件驱动的网络框架对于追求服务器程序性能的应用Twisted框架是一个很好的选择。 Twisted是一个有着10多年历史的开源事件驱动框架。Twisted支持很多种协议包括传输层的UDP、TCP、TLS以及应用层的HTTP、FTP等。对于所有这些协议Twisted提供了客户端和服务器方面的开发工具。 Twisted框架的历史悠久其主要发行版本都以Python 2为基础最新的版本为基于Python 2.7的Twisted-15.4.0。Twisted社区正在开发基于Python 3的版本但目前为止尚没有基于Python 3的Twisted稳定发行版。 Twisted是一个高性能的编程框架。在不同的操作系统平台上Twisted利用不同的底层技术实现了高效能通信。在Windows中Twisted的实现基于I/O完成端口IOCPInput/Output Completion Port技术它保证了底层高效地将I/O事件通知给框架及应用程序在Linux中Twisted的实现基于epoll技术epoll是Linux下多路复用I/O接口select/poll的增强版本它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。 在开发方法上Twisted引导程序员使用异步编程模型。Twisted提供了丰富的Defer、Threading等特性来支持异步编程。
http://www.w-s-a.com/news/877647/

相关文章:

  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号
  • 设计类书籍网站江苏网站建设简介模板
  • 手机企业网站推广c 手机app开发
  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理
  • 扁平化 公司网站建设大型视频网站需要的资金量
  • 免费建各种网站淄博网站建设yx718
  • 凡科网建站入门教程运城市网站建设
  • 黄浦区未成年人思想道德建设网站oa系统是什么
  • 微信里的网站怎么做电子商务网站开发平台
  • 易企秀网站怎么做轮播图网站建设张世勇
  • 网站备案幕布尺寸建立网页的几个步骤
  • pc网站页面找出网站所有死链接
  • 专业做seo的网站网站内连接
  • 阿里云网站开发服务器想开网站建设公司
  • 网站开发不足之处茶叶seo网站推广与优化方案
  • 响应式网站建设系统网站优化怎么做 有什么技巧
  • 班级网站做哪些方面wordpress标签 扩展
  • 如何在电商上购物网站Wordpress 域名授权插件
  • 网站建设后台怎么弄昆明如何做好关键词推广
  • 自己怎么做个网站优酷视频网站开发
  • 2015做网站前景电子商务营销的发展现状
  • 官方网站建设情况说明电子商务网站开发的形式有