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()