WEB开发网
开发学院软件开发Python 适用于 CGI 程序员的 CherryPy 阅读

适用于 CGI 程序员的 CherryPy

 2008-09-30 13:11:14 来源:WEB开发网   
核心提示: CherryPy 隐藏了这种复杂性的大部分,使得易于建立和使用基于 cookie 的会话 —— 这是一个重要的功能,适用于 CGI 程序员的 CherryPy(8),但是并不是 CGI 本身就支持的功能,您可以将任何 Python 对象存储在 cpg.request

CherryPy 隐藏了这种复杂性的大部分,使得易于建立和使用基于 cookie 的会话 —— 这是一个重要的功能,但是并不是 CGI 本身就支持的功能。您可以将任何 Python 对象存储在 cpg.request.sessionMap 映射中,下次相同的用户点击您的页面时它就在那儿。下面的示例与刚才描述的应用程序的工作原理相似:

清单 10. 将任何 Python 对象存储在 cpg.request.sessionMap 映射中

#!/usr/bin/env python
from cherrypy import cpg
class Application:
  @cpg.expose
  def set(self, name):
    cpg.request.sessionMap['name'] = name
    return 'Set name to %s' % name
  @cpg.expose
  def show(self):
    return 'Your previously set name is %s.' %
        cpg.request.sessionMap.get('name', '[none]')

到目前为止都相当简单。可是,为了这些代码起作用,需要设置 CherryPy 服务器将会话 cookie 与每个 HTTP 响应相关联。否则,CherryPy 就永不可能将两个请求与相同的会话关联起来。您可以在 CherryPy 服务器配置文件中进行这些配置(参见 参考资料),但是比较易于证明它是启动 CherryPy Web 服务器的 Python 代码的一部分:

清单 11. 启动 CherryPy Web 服务器的 Python 代码的一部分

cpg.root = Application()
cpg.server.start(configMap={'sessionStorageType' : 'ram',
              'sessionCookieName' : 'CherryPySessionCookie',
              'sessionTimeout' : 60}) #Session expires in an hour

结束语

CherryPy 使用与 CGI 相同的概念将 Web 服务器与 Web 应用程序绑定起来,但是通过在单个进程内处理它的所有请求,改善了性能,并且获得了请求间的持续性。因为它只是绑定到 Python 代码,所以它并不需要经常隐藏 CGI 的信息传递技术,这样导致更易理解的更少代码行。CherryPy 是 CGI 的优秀替代品,并且是创建 Python Web 应用程序的良好基础。

上一页  3 4 5 6 7 8 

Tags:适用 CGI 程序员

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接