框架让开发更轻松
今天,有着大量的Python框架,它们可以让web应用的开发更轻松。这些框架把不同的模块集成在一起,让你更快的构架程序,而不用关注一些细节(例如socket和协议),框架提供了需要的所有功能。
作为分成两部分的系列文章的第一部分,我们会介绍一些最流行的Python框架。虽然大部分现代的web框架都运行在服务端,也有一些框架开始尝试与客户端代码结合,可以在客户端运行(例如Skulpt和Trinket)。Python框架通常分为全栈框架和非全栈框架。全栈框架设计从用户体验到数据库的所有技术,非全栈框架则并不包含整个开发的全部技术。
此外还有一种微框架,也属于非全栈框架,但是更轻量级。有的情况下,微框架是比较适合的,有时又适合使用全栈框架。在文章的第二部分我们会对全栈框架和微框架做一个比较。
一、Python名气最大的框架:Django
在学习到python基础和python进阶时,一般不会使用到框架。但初学Python时,你一定听到过Django,这两者就好像是一对好朋友。
Django它是个开放源代码的Web应用框架,由Python写成的Django应该是最出名的Python框架之一。GAE还有Erlang都和python密切相关。Django是给人的感觉是高大尚,它十分出色的是其全自动化的管理后台:只需要使用起ORM做简单的对象定义,就能自动生成数据库结构,以及全功能的管理后台。
二、用Python编写的小巧轻量级的Web应用框架:Flask
Flask也是一个Web应用框架,不同于Django它是轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。 但是Flask是可以扩增的,你可以使用可以用Flask-extension增加前边没有的一些功能。
三、实时Web服务的理想框架:Tornado异步非阻塞IO的Python Web框架
Tornado它的全称是Torado Web Server,(小编企鹅,有什么不懂的可以加下:二二五三三四八六八六)仅仅从它的名字上我们就可以知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。Tornado 和现在的主流 Web 服务器框架和大多数Python框架有着明显的区别:它是非阻塞式服务器,而且速度相当快。也是比较常被使用的Python开源框架之一。
四、web2py是一个开源框架,允许开发者快速创建动态交互式的网站
它的设计目标是消除拖慢开发的大量重复编程任务,比如创建基本的表格。它在最初是作为工具开发的。随后被Django和Ruby on Rails模仿,Ruby on Rails是个Ruby的框架。同TurboGears一样,它使用MVC架构。
web2py的一些优点包括:
容易使用——作为一个鲁棒的全栈式框架,它无需其他依赖就可以工作,容易学习和部署,安装也无需任何配置文件,一旦下载完成,安装完毕,就可以用了。开发者会获得一个数据库,一个基于web的IDE,web服务器以及一个有多个核心对象组成的强大API。
安全性出色——Web2py的模板语言减少了黑客使用跨站脚本的危险,抽象层在创建表单时有表单域有效性检查,避免SQL注入,也阻止了跨站请求伪造攻击(csrf攻击)。会话被存储在服务器上,阻止坏的执行者把浏览器cookie弄乱,并且每个密码都是哈希后存储的。
web2py的一些缺点包括:
在常规基础上使用管理的接口不太容易
管理的接口没有权限
没有内建的单元测试支持
开发速度迅速,所有的函数都有缺省行为,表单时自动生成的,高层次的小部件和应用网格都是内建的。
领取专属 10元无门槛券
私享最新 技术干货