Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #42817
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!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 <werotizy@freent.dd> |
| Newsgroups | comp.lang.python |
| Subject | Re: HTTPserver: how to access variables of a higher class? |
| Date | Fri, 05 Apr 2013 15:26:20 +0200 |
| Lines | 63 |
| Message-ID | <as81nsFu3flU1@mid.individual.net> (permalink) |
| References | <as7paeFs5e9U1@mid.individual.net> <mailman.132.1365162863.3114.python-list@python.org> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | individual.net UVLnROf6Ej8mrrqQG4qQSg5Kz4MYx8eqrO+WxJndH6NQiN8QM= |
| Cancel-Lock | sha1:8FG9fGKZLIl8hpKiIEw20FKwK6o= |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Thunderbird/16.0.1 |
| In-Reply-To | <mailman.132.1365162863.3114.python-list@python.org> |
| Xref | csiph.com comp.lang.python:42817 |
Show key headers only | View raw
On 04/05/2013 01:54 PM, Dave Angel wrote:
> On 04/05/2013 07:02 AM, Tom P wrote:
>> First, here's a sample test program:
>> <code>
>> import sys
>> from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
>>
>> class MyRequestHandler(BaseHTTPRequestHandler, object):
>> def do_GET(self):
>> top_self = super(MyRequestHandler, self) # try to access
>> MyWebServer instance
>> self.send_response(200)
>> self.send_header('Content-type', 'text/html')
>> self.end_headers()
>> self.wfile.write("thanks for trying, but I'd like to get at
>> self.foo and self.bar")
>> return
>>
>> class MyWebServer(object):
>> def __init__(self):
>> self.foo = "foo" # these are what I want to access from inside
>> do_GET
>> self.bar = "bar"
>> self.httpd = HTTPServer(('127.0.0.1', 8000), MyRequestHandler)
>> sa = self.httpd.socket.getsockname()
>> print "Serving HTTP on", sa[0], "port", sa[1], "..."
>>
>> def runIt(self):
>> self.httpd.serve_forever()
>>
>> server = MyWebServer()
>> server.runIt()
>>
>> </code>
>>
>> I want to access the foo and bar variables from do_GET, but I can't
>> figure out how. I suppose this is something to do with new-style vs.
>> old-style classes, but I lost for a solution.
>
> It'd have been good to tell us that this was on Python 2.7
>
Yes, sorry for the omission.
> Is MyWebServer class intended to have exactly one instance?
Yes, but I was trying to keep it general.
If so, you
> could save the instance as a class attribute, and trivially access it
> from outside the class.
>
> If it might have more than one instance, then we'd need to know more
> about the class BaseHTTPServer.HTTPServer, From a quick glance at the
> docs, it looks like you get an attribute called server. So inside the
> do_GET() method, you should be able to access self.server.foo and
> self.server.bar
ok, let me test that. Do I assume correctly from what you write that
the super() is not needed?
In reality there is just one instance of MyWebServer, but I was
looking for a general solution.
>
> See http://docs.python.org/2/library/basehttpserver.html
>
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
HTTPserver: how to access variables of a higher class? Tom P <werotizy@freent.dd> - 2013-04-05 13:02 +0200
Re: HTTPserver: how to access variables of a higher class? Dave Angel <davea@davea.name> - 2013-04-05 07:54 -0400
Re: HTTPserver: how to access variables of a higher class? Tom P <werotizy@freent.dd> - 2013-04-05 15:26 +0200
Re: HTTPserver: how to access variables of a higher class? Tom P <werotizy@freent.dd> - 2013-04-05 23:41 +0200
Re: HTTPserver: how to access variables of a higher class? Dave Angel <davea@davea.name> - 2013-04-05 23:19 -0400
Re: HTTPserver: how to access variables of a higher class? Dylan Evans <dylan@dje.me> - 2013-04-05 22:27 +1000
Re: HTTPserver: how to access variables of a higher class? Tom P <werotizy@freent.dd> - 2013-04-05 15:21 +0200
Re: HTTPserver: how to access variables of a higher class? Tom P <werotizy@freent.dd> - 2013-04-06 17:05 +0200
Re: HTTPserver: how to access variables of a higher class? Dylan Evans <dylan@dje.me> - 2013-04-07 11:51 +1000
Re: The SOLUTION HTTPserver: how to access variables of a higher class Tom P <werotizy@freent.dd> - 2013-04-06 23:38 +0200
csiph-web