适用于 CGI 程序员的 CherryPy
2008-09-30 13:11:14 来源:WEB开发网装饰符不存在于版本 2.4 之前的 Python 中,因而 exposed 这个技巧可能是您将方法暴露给 CherryPy 的惟一方式。
收集用户输入
当用户向 CGI 脚本提交表单或者提供信息时,Web 浏览器会收集那些信息,并且通过环境变量将其传递给该脚本。脚本的责任是解析和理解这些信息,尽管有一套约定控制着这些信息的格式和用途。CherryPy 使用这些非正式的约定消除这个过程的几个步骤,以参数的形式将用户输入提供给它决定调用的 Python 方法。
将查询字符串转变为关键字参数
考虑一个具有查询参数的 URL,比如 http://localhost:8080/hello/?what=hello&who=world。用户可能已经点击这个 URL,或者已将它提交为填充 HTML 表单的结果。传统的基于 CGI 的 Web 服务器将把 what=hello&who=world 传递到环境变量 QUERY_STRING 中的 CGI 脚本。CGI 脚本负责取出该变量,解析那个字符串。Python 的 cgi 模块为您进行解析。但是,使用 CherryPy,您不必做任何事情。CherryPy Web 服务器自动将 URL 的查询字符串转变为一组关键字参数。
清单 4. CherryPy Web 服务器自动将 URL 的查询字符串转变为一组关键字参数
class Application:
@cpg.expose
def hello(self, what='Hello', who='world'):
return '%s, %s!' % (what, who)
当用户点击 /hello/ URL 时,CherryPy 将查询字符串中的 what 和 who 转换为 hello() 方法的参数。从 URL 到 Python 方法调用的转换对您来说完全是透明的。它甚至不在乎原始的 HTTP 请求是通过方法 GET 进来的,还是通过方法 POST 进来的。
将额外的路径部分转换为位置参数
- ››程序员面试问题锦集
- ››程序员:使用 DB2 for z/OS 减少会话:第 1 部分:...
- ››CGI拒绝服务攻击技术浅析
- ››适用于Windows 7 7000的Intel PRO Wireless 2200B...
- ››适用于 CGI 程序员的 CherryPy
- ››程序员注意:Java开发最容易犯的21种错误
- ››程序员杂谈:Ajax优于JSF的几个原因讨论
- ››程序员生活 J2EE学习者值得研究的开源项目
- ››程序员学习Java的一剂良药:破坏源程序
- ››程序员必读:对JAVA语言的十个常见误解
- ››程序员眼中的qmail(qmail源代码分析)
- ››程序员必读的《C++程序设计陷阱》
更多精彩
赞助商链接