web2py 包括 pyamf 支持。它的工作方式是你创建像
def add(a,b): return a+b
然后你用 @service.amfrpc3('domain') 装饰它们
@service.amfrpc3('domain')
def add(a,b): return a+b
您无需重新启动 Web 服务器或执行任何其他操作。您只需在控制器文件(定义服务的文件)中添加和删除函数,服务就会变为可用或删除。您还可以使用多个装饰器使用其他协议(xmlrpc、jsonrpc、rss、csv、xml、json)提供相同的功能。
@service.xmlrpc
@service.jsonrpc
@service.amfrpc3('domain')
def add(a,b): return a+b
您不需要实例化网关(与其他框架一样。所有装饰功能都通过您不需要编写的单个操作公开,因为它已经在脚手架应用程序中(由 web2py 为您创建):
def call(): return service()
这些函数可以访问 web2py 数据库抽象层 (DAL) 和(有一些限制)web2py 身份验证机制。
您可以使用 shell(emacs/vi/etc)编辑包含该功能的控制器,但您也可以使用基于 web2py Web 的 IDE(称为“admin”)并使用浏览器添加服务。
Web2py 包含一个票务系统,因此很容易调试 Web 服务。任何服务器端错误都会导致票证。管理员中有一个网页列出了所有票证。您单击一个,它会显示导致问题的代码和完整的回溯。
您可以导入和使用任何第三方 python 模块。您必须预先安装 pyamf。
这在本书的第 9 章中有详细记录:
http://web2py.com/book/default/section/9/2
web2py 应用程序非常容易部署。一种方法是使用管理员点击。另一种方法是简单地将文件从一台机器复制到另一台机器。没有元数据,没有安装程序(甚至 web2py 本身也没有),没有设置,没有配置文件。后一个过程在这里有所描述:
http://gluonframework.wordpress.com/2010/03/02/shell-only-web2py/
web2py 基于 WSGI。它与您能想到的任何 Web 服务器一起运行(apache+mod_wsgi/mod_python/mod_proxy;lighttpd/cheorkeey/ngnix+fcgi/wsgi.py;cherrypy;等)。此处详细记录了一些选项:
http://www.web2py.com/book/default/section/11/0
其他选项可以在http://web2pyslices.com上找到
web2py还自带了自己的web服务器Rocket,支持https,速度非常快。web2py 代码也可以部署在 Google App Engine 上。
检查 web2py google 组上的活动。