github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2013/go4python/deco.py (about) 1 #!/usr/bin/python 2 3 from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer 4 from urlparse import urlparse,parse_qs 5 6 PORT_NUMBER = 8080 7 8 def auth_required(myfunc): 9 def checkuser(self): 10 user = parse_qs(urlparse(self.path).query).get('user') 11 if user: 12 self.user = user[0] 13 myfunc(self) 14 else: 15 self.wfile.write('unknown user') 16 return checkuser 17 18 19 class myHandler(BaseHTTPRequestHandler): 20 @auth_required 21 def do_GET(self): 22 self.wfile.write('Hello, %s!' % self.user) 23 24 try: 25 server = HTTPServer(('', PORT_NUMBER), myHandler) 26 server.serve_forever() 27 28 except KeyboardInterrupt: 29 server.socket.close()