BaseHTTPRequestHandler with custom instance
basehttprequesthandler, basehttpserver, httpserver, python, requesthandler
Solution
there a way to do it is to set the property to the class :
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
class test:
def show(self):
return "aaaa"
class http_server:
def __init__(self, t1):
myHandler.t1 = t1
server = HTTPServer(('', 8080), myHandler)
server.serve_forever()
class myHandler(BaseHTTPRequestHandler):
t1 = None
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.wfile.write(self.t1.show()) #Doesnt work
return
class main:
def __init__(self):
self.t1 = test()
self.server = http_server(self.t1)
if __name__ == '__main__':
m = main()
You have to be careful that's every where you use myHandler that's will be the same instance of t1
Problem
this is my http server: ``` from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer class test: def show(self): return "aaaa" class http_server: def __init__(self, t1): self.t1 = t1 server = HTTPServer(('', 8080), myHandler) server.serve_forever() class myHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-type','text/html') self.end_headers() self.wfile.write(self.t1.show()) #Doesnt work return class main: def __init__(self): self.t1 = test() self.server = http_server(self.t1) if __name__ == '__main__': m = main() ``` I need to acces instance t1 inside of myHander. Is there any way how to do it ? Thanks!