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

适用于 CGI 程序员的 CherryPy

 2008-09-30 13:11:14 来源:WEB开发网   
核心提示: 清单 8. 设置 HTTP 标题状态@cpg.exposedef forbidden(self):"Hit the '/forbidden' URL to be denied access."cpg.response.headerMap['Sta

清单 8. 设置 HTTP 标题状态

  @cpg.expose
  def forbidden(self):
    "Hit the '/forbidden' URL to be denied access."
    cpg.response.headerMap['Status'] = '503 Forbidden'
    return "You don't have permission to access this resource."

若要将某个 HTTP 重定向,您可以手工设置 Status 和 Location 标题,或者可以使用 CherryPy 的 httputils 助手库的 redirect 方法,它完成相同的工作:

清单 9. 使用 CherryPy 的 httputils 助手库的 redirect 方法

  @cpg.expose
  def redirect(self):
    "Hit the '/redirect' URL to be redirected."
    from cherrypy.lib import httptools
    httptools.redirect('./destination')
  @cpg.expose
  def destination(self):
    "This is where you end up if you hit the '/redirect' URL."
    from cherrypy.lib import httptools
    cpg.response.headerMap['Content-Type'] = 'text/plain'
    return 'Here is some plain text.'
cpg.root = Application()
cpg.server.start()

在一个会话中保持持续信息

考虑一个这样的应用程序,在其中我可以点击 URL /name/set?name=leonardr 来设置一些数据,然后我可以点击 URL /name/show,并被告知 Your previously set name is leonardr。由于第二个请求使用来自第一个请求的信息,所以这两个请求都必须是单个会话的组成部分。我第一次请求中发送的字符串 leonardr 存储在服务器的某个位置。当我进行第二次请求时,不知何故我被认为是发送第一个请求的同一人,并检索到我与第一个请求一起发送的信息。

上一页  2 3 4 5 6 7 8  下一页

Tags:适用 CGI 程序员

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