python类库26[web2py之介绍]
一 web2py
web2py是免费的开源的web框架,被用来快速地开发基于安全的数据库驱动的web应用。我们通过python来使用web2py框架,同时web2py本身也是使用python开发的。web2py是一个full-stack框架,这意味着她包含了你构建功能丰富的web应用的所有组件。
主页 : http://web2py.com/
官方的参考书: http://web2py.com/book
官方的example: http://web2py.com/examples/default/examples
二 web2py的特点
web2py被设计用来引导web开发人员使用软件开发的最佳实践,例如Model View Controller(MVC)模式。 web2py将数据的representation(the model),数据的presentation(the view)和应用程序的逻辑和流程(the controller)分割到不同的部分。web2py提供了库来帮助开发人员独立地设计,实现和测试这三个部分,和是这三个部分一起很好的工作。
web2py充分考虑了安全。这意味着她使用了最佳实践来自动地发现可能导致系统安全的问题。例如她验证所有的用户输入(阻止注入),避免了所有的输出(阻止跨网站的脚本),重命名所有的上传的文件(阻止目录遍历攻击)。web2py几乎帮开发人员考虑了所有的安全相关的问题。
web2py包含了数据抽象层Database Abstration Layer(DAL)来动态构建SQL语句,开发人员不需要自己构建SQL语句。数据抽象层(DAL)能够透明地构建适合SQLite,MySql,PostgreSQL,MSSQL,FireBird,Oracle,IBM DB2,Informix和Ingres数据库的SQL语句。数据抽象层也能够为运行于GoogleAppEngine(GAE)的Google BigTable产生函数调用。 一旦一个或多个数据库表被定义,web2py同时也生成了用于访问该数据库表的全功能的基于web的管理接口。
web2py不同于其他的web框架,在于她遵存了web2.0的理念(计算机就是web)。(其实这里作者真想说的是web2py支持多平台多语言多版本)。web2py不需要安装和配置,她能够运行在所有的能运行python的平台(Windows,Windows CE,Mac OS X, iOS,and Unix/Linux),她的开发,部署和维护都可以通过本地或web远程的接口来完成。web2py能够在CPython和Jpython的2.4, 2.5,2.6, 2.7上运行,官方的支持是2.5,以至于能保证应用程序的向后的兼容。
web2py提供了一个ticketing系统,如果一个错误产生,a ticket将会报告给用户且错误被记录下来供管理员查看。
web2py是开源的基于GPL2.0发布的,但是使用web2py开发的应用程序不拘束于任何的协议。事实上,只要你的应用不包含web2py的源码,你的应用就不被为认为是"derivative works"。web2py也允许开发人员基于二进制的webpy来编译自己的应用且发布应用作为非开源。web2py的协议包含了一个例外允许web开发人员发布基于预编译的web2pybinaries的应用。
web2py充分考虑了安全。这意味着她使用了最佳实践来自动地发现可能导致系统安全的问题。例如她验证所有的用户输入(阻止注入),避免了所有的输出(阻止跨网站的脚本),重命名所有的上传的文件(阻止目录遍历攻击)。web2py几乎帮开发人员考虑了所有的安全相关的问题。
web2py包含了数据抽象层Database Abstration Layer(DAL)来动态构建SQL语句,开发人员不需要自己构建SQL语句。数据抽象层(DAL)能够透明地构建适合SQLite,MySql,PostgreSQL,MSSQL,FireBird,Oracle,IBM DB2,Informix和Ingres数据库的SQL语句。数据抽象层也能够为运行于GoogleAppEngine(GAE)的Google BigTable产生函数调用。 一旦一个或多个数据库表被定义,web2py同时也生成了用于访问该数据库表的全功能的基于web的管理接口。
web2py不同于其他的web框架,在于她遵存了web2.0的理念(计算机就是web)。(其实这里作者真想说的是web2py支持多平台多语言多版本)。web2py不需要安装和配置,她能够运行在所有的能运行python的平台(Windows,Windows CE,Mac OS X, iOS,and Unix/Linux),她的开发,部署和维护都可以通过本地或web远程的接口来完成。web2py能够在CPython和Jpython的2.4, 2.5,2.6, 2.7上运行,官方的支持是2.5,以至于能保证应用程序的向后的兼容。
web2py提供了一个ticketing系统,如果一个错误产生,a ticket将会报告给用户且错误被记录下来供管理员查看。
web2py是开源的基于GPL2.0发布的,但是使用web2py开发的应用程序不拘束于任何的协议。事实上,只要你的应用不包含web2py的源码,你的应用就不被为认为是"derivative works"。web2py也允许开发人员基于二进制的webpy来编译自己的应用且发布应用作为非开源。web2py的协议包含了一个例外允许web开发人员发布基于预编译的web2pybinaries的应用。
web2py的其他特点:
她的开发人员保证在将来一直都能够向后兼容。
容易使用。
能够通过 CGI, FastCGI, WSGI, mod_proxy, 和 mod_python运行于Apache, Lighttpd, Cherokee 和其他大部分web server。 同时她也能够被嵌入到第三方的WSGI应用和中间件中。
支持多种协议HTML/XML, RSS/ATOM, RTF, PDF, JSON, AJAX, XML-RPC, CSV, REST, WIKI, Flash/AMF, and Linked Data (RDF)。
她自己包含了SSL-enabled 和 streaming-capable的web server,一个关系型数据库,基于web的开发环境和管理界面,数据抽象层DAL来动态生成SQL,网站的国际化支持,多种认证方式,基于角色的访问控制,错误日子和ticketing系统,多种缓存方式来支持伸缩,JQuery库来实现AJAX和特效。
她的开发人员保证在将来一直都能够向后兼容。
容易使用。
能够通过 CGI, FastCGI, WSGI, mod_proxy, 和 mod_python运行于Apache, Lighttpd, Cherokee 和其他大部分web server。 同时她也能够被嵌入到第三方的WSGI应用和中间件中。
支持多种协议HTML/XML, RSS/ATOM, RTF, PDF, JSON, AJAX, XML-RPC, CSV, REST, WIKI, Flash/AMF, and Linked Data (RDF)。
她自己包含了SSL-enabled 和 streaming-capable的web server,一个关系型数据库,基于web的开发环境和管理界面,数据抽象层DAL来动态生成SQL,网站的国际化支持,多种认证方式,基于角色的访问控制,错误日子和ticketing系统,多种缓存方式来支持伸缩,JQuery库来实现AJAX和特效。
三 安装(不需要安装)
在windows上, 下载web2py_win.zip后解压,然后执行web2py.exe。
输入你的管理员的初始密码,然后startserver。 默认地会打开自带的welcome例子,如果没有打开的自己打开http://127.0.0.1:8000/welcome/default/index , 如下:
可以单击click here for the administrative interface进入管理页面,如下:(或者可以输入http://127.0.0.1:8000/admin/default/site)。
四 web2py的结构
Rocket Wsgi-server: 是web2py自带的server;
gluon:是web2py的核心库;
contrib:是web2py对第三方支持的库;
admin:是web2py的管理界面;
examples和welcome:是web2py自带的例子;
完!