Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!news-1.dfn.de!news.dfn.de!news.informatik.hu-berlin.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Tom P Newsgroups: comp.lang.python Subject: HTTPServer again Date: Mon, 22 Apr 2013 15:41:33 +0200 Lines: 44 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net y2ZF+CNlGreG7RX7poYpKghsxCNilDcYS9I6vs1BGBMzSvbtg= Cancel-Lock: sha1:DwfL2AGFLXm+BAM+CB8ICc8SFZI= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Thunderbird/16.0.1 Xref: csiph.com comp.lang.python:44069 Hi, a few weeks back I posed a question about passing static data to a request server, and thanks to some useful suggestions, got it working. I see yesterday there is a suggestion to use a framework like Tornado rather than base classes. However I can't figure achieve the same effect using Tornado (BTW this is all python 2.7). The key point is how to access the server class from within do_GET, and from the server class instance, to access its get and set methods. Here are some code fragments that work with HTTPServer: class MyHandler(BaseHTTPRequestHandler): def do_GET(self): ss = self.server tracks = ss.tracks . . . class MyWebServer(object): def get_params(self): return self.global_params def set_params(self, params): self.global_params = params def get_tracks(self): return self.tracks def __init__(self): self.global_params = "" self.tracks = setup_() myServer = HTTPServer myServer.tracks = self.get_tracks() myServer.params = self.get_params() self.server = myServer(('', 7878), MyHandler) print 'started httpserver on port 7878...' . . . . def main(): aServer = MyWebServer() aServer.runIt() if __name__ == '__main__': main()