CherryPy如何区分不同的http会话?

时间:2017-02-18 04:55:49

标签: python cherrypy

http://docs.cherrypy.org/en/latest/tutorials.html#id7中,有tut05.py:

import random
import string

import cherrypy


class StringGenerator(object):
    @cherrypy.expose
    def index(self):
        return """<html>
          <head></head>
          <body>
            <form method="get" action="generate">
              <input type="text" value="8" name="length" />
              <button type="submit">Give it now!</button>
            </form>
          </body>
        </html>"""

    @cherrypy.expose
    def generate(self, length=8):
        some_string = ''.join(random.sample(string.hexdigits, int(length)))
        cherrypy.session['mystring'] = some_string #(A)
        return some_string

    @cherrypy.expose
    def display(self):
        return cherrypy.session['mystring'] #(B) QUESTION HERE


if __name__ == '__main__':
    conf = {
        '/': {
            'tools.sessions.on': True
        }
    }
    cherrypy.quickstart(StringGenerator(), '/', conf)

我试过这个程序。当我使用两个浏览器会话(将它们设想为来自不同计算机的两个客户端)访问URL时,服务器可以区分这两个客户端。这是如何实现的?

从功能体:

    @cherrypy.expose
    def display(self):
        return cherrypy.session['mystring'] #(B) QUESTION HERE

看起来self不是引用,所以我认为cherrypy.session是两个客户端的相同的对象。真的一样吗?或者我错在哪里。

0 个答案:

没有答案