Python 四大主流网络编程框架( 二 )


底层自定义协议网络框架——Twisted以上讲到的 2个 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 完成端口(IOCP,Input/Output Completion Port)技术,它保证了底层高效地将 I/O 事件通知给框架及应用程序;在 linux 中,Twisted 的实现基于 epoll 技术,epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率 。
在开发方法上,Twisted 引导程序员使用异步编程模型 。Twisted 提供了丰富的Defer、Threading等特性来支持异步编程 。
企业级开发框架——DjangoDjango 于 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组件的配置引用等,这样可以使开发者马上改正错误 。
Django 的组成结构
Django 是遵循 MVC 架构的 Web 开发框架,其主要由以下几部分组成 。
管理工具(Management):一套内置的创建站点、迁移数据、维护静态文件的命令工具 。
模型(Model):提供数据访问接口和模块,包括数据字段、元数据、数据关系等的定义及操作 。
视图(View):Django 的视图层封装了 HTTP Request 和 Response 的一系列操作和数据流,其主要功能包括URL映射机制、绑定模板等 。
模板(Template):是一套 Django 自己的页面渲染模板语言,用若干内置的tags和filters定义页面的生成方式 。
表单(Form):通过内置的数据类型和控件生成 HTML 表单 。
管理站(Admin):通过声明需要管理的 Model,快速生成后台数据管理网站 。
摘自《Python高效开发实战——Django、Tornado、Flask、Twisted》一书
2018-11-22(周四)21:00-22:00
将由我们的 Monkey 老师为我们带来《Django 相册管理》分享
简介
基于Django Web开发框架,来实现图片、相册的快捷管理;
支持创建相册、上传图片、图片缩放、图片介绍、点赞等功能;
依赖

  • Python 3.6.4
  • Django 1.11
  • PyMySQL 0.9.2
  • Pillow 5.3.0
  1. PIL (Python Imaging Library); Python2.7


    推荐阅读