朱贇
摘要:Python是脚本语言,开发代码效率高。Python语言具有开源和跨平台的特点,在设计Web应用程序设计开发中有很大优势。该文介绍了Python的特点以及几种常见的Web开发框架。
关键词:Python;Web开发;云计算
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)32-0095-02
1 Python语言的特点
Python语言是第四代程序设计语言,是解释性的、交互性的和面向对象的。它在Web应用和非Web应用中都发挥了重要的作用。比如Google的核心代码是用Python语言写的,国内著名的豆瓣网也使用Python技术。Python是脚本语言,开发代码效率高,使用第三方标准库,可以用简洁易读的代码描述强大功能。
Python语言的易读性体现在代码行少,同样功能的代码行可以是C语言的五分之一。另一方面也体现在它没有花括号或者begin...end...來分割语句块,避免了花括号匹配错误的问题。Python语言使用冒号来区分代码之间的层词,比如条件语句的书写:
if True:
print “Yes”
这个if语句末尾的冒号,表示第二行的print语句是下一层次的语句,需要满足条件才能执行到。
2 Python语言的Web应用
Python语言具有开源和跨平台的特点,在设计Web应用程序设计开发中有很大优势。Python语言采用WSGI模型,是Python服务器、应用程序和中间层之间的官方规范标准,局限是不支持异步模型。同时,Python也逐渐成为网游行业的主流编程语言,代替了原来的C/C++。
Python语言在云技术的应用中,实现了很多底层的虚拟化。云计算把所有的资源以服务的方式提供给客户,包括Iaas/Paas/Saas等,比如易度的Paas平台就是基于Python语言的。Python可以通过标准库解决大数据处理的问题,完成数据转换、数据分析、处理,最后提取数据特征并能需要的结构形式呈现。
3 常见的Web开发框架
以下是五种较为常见的Python领域的Web开发框架。
3.1 Django
Django是一个常见的Python Web应用框架。它是开源的Web开发框架,包含了多种组件,可以实现关系映射、动态内存管理、界面管理等功能。Django开发采用DRY原则,同时拥有独立的轻量级Web服务器,能快速开发Web应用。
Django开发遵循MVC模式,包括模型·、视图、控制三部分。模型层是应用程序底层,主要负责处理与数据有关的事务,如数据存取验证等。由于Django中用户输入控制模块是由框架处理的,也可以称为模板层。模板层负责展现数据,负责模板的存取和正确调用模板等业务。程序员使用模板语言来渲染HTML页面,给模板所需显示的信息,使用既定的模板来渲染结果。视图层组成应用程序的业务逻辑,负责在网页或其他类型的文档中展示数据。
Django的工作过程:
1) 浏览器向Web服务器发送HTTP请求。
2) Web服务器收到请求转发给Django应用。
3) Django请求中间件层,按照URLconf模式来匹配、映射到合适的视图函数上;视图函数利用模型和模板,按照要求生成相应的响应;中间件层把响应封装成HTTP响应,返回给Web服务器。
4) Web服务器把响应转发给客户端浏览器。
3.2 CherryPy
CherryPy是基于Python的面向对象的HTTP框架,适合Python开发者。使用CherryPy来开发Web 应用,但CherryPy并没用提供一种模板语言机制。CherryPy自身内置了一个Web服务器。CherryPy的用户不需另外搭设Web服务器,能直接在内置的服务器上运行应用程序。服务器负责:一方面把底层TCP套接字传输的信息转换成Http请求,并传递给相应的处理程序;另一方面把上层软件传来的信息打包成Http响应,向下传递给底层的TCP套接字。
3.3 Flask
Flask适合开发轻量级的Web应用。它的服务器网关接口工具箱采用 Werkzeug,模板引擎使用Jinja2。Flask使用BSD授权。Flask自身没有如表单验证和数据库抽象层等一些基本功能,而是依靠第三方库来完成这些工作。Flask的结构是可扩展的,可以比较容易地为它添加一些需要的功能。
3.4 Pyramid
Pyramid是开源框架,执行效率高,开发周期短。Pyramid包含了Python/Perl/Ruby的特性,具有不依赖于平台的MVC架构,以及最快的启动开发的能力。
3.5 TurboGear
TurboGear建立在其他框架基础上,它试图把其他框架优秀的部分集成到一起。它允许开发者从一个单文件服务开始开发,逐步扩展为一个全栈服务。
3.6 Flask、Pyramid和Django的比较
Flask主要面向需求简单的小应用,是一个微框架。Pyramid和Django都是面向大的应用。但是后两者在扩展性和灵活性有所不同。Pyramid注重灵活性,开发者在开发项目时可以选择合适的工具,比如选择数据库、URL结构、模板风格等。Django为开发者提供web应用开发的一站式解决方案,它包含的模块比较多。
Django包含了一个ORM模块,Pyramid和Flask的开发者可以自行选择数据存储工具,较流行的ORM目前是SQLAlchemy,或者选择DynamoDB和MongoDB等。
Django是一站式解决的框架,开发者不用花费大量时间在选择应用的基础设施的工作上。它包含模板、表单、路由、验证和基本的数据库管理等内建功能。Pyramid包含路由和验证功能,而模板和数据库管理需要利用第三方库来完成。用Flask和Pyramid来构建应用,开发者自行选择组件,具有更多的灵活性。
4 结束语
Python语言具有开源和跨平台的特点,简洁高效的代码使得该语言的应用越来越广泛,在Web开发框架的支持下,Python在Web开发领域的应用也将越来越多。Django作为一站式解决方案,可能缺乏开发灵活性,而Pyramid等框架提供的可定制方案更适合于一些需要灵活应用的场合。
参考文献:
[1] 肖旻,陈行. 基于Python语言编程特点及应用之探讨[J]. 电脑知识与技术,2014, 10(34)
[2] 龚新定, 余艳梅. 基于Django的实验室信息管理系统设计[J]. 微信机与应用,2016, 35(22)
[3] 诗书塞外. 5个最好的Python Web开发框架[EB/OL]. https://python.freelycode.com/contribution/detail/494.
[4] Flask、Django、Pyramid三个框架的对比[EB/OL]. http://blog.csdn.net/kuaileboy1989/article/details/45867085.endprint