Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 1 | """cgitest - A minimal CGI applet. Echos parameters back to the client. |
| 2 | """ |
| 3 | |
| 4 | from MiniAEFrame import AEServer, MiniApplication |
Just van Rossum | 158ce42 | 2000-03-26 10:12:26 +0000 | [diff] [blame] | 5 | import MacOS |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 6 | |
Jack Jansen | 8eff33b | 2000-06-20 22:01:04 +0000 | [diff] [blame] | 7 | debug=1 |
| 8 | |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 9 | class CGITest(AEServer, MiniApplication): |
| 10 | |
| 11 | def __init__(self): |
| 12 | MiniApplication.__init__(self) |
| 13 | AEServer.__init__(self) |
| 14 | self.installaehandler('aevt', 'oapp', self.open_app) |
| 15 | self.installaehandler('aevt', 'quit', self.quit) |
| 16 | self.installaehandler('WWW\275', 'sdoc', self.cgihandler) |
Jack Jansen | 8eff33b | 2000-06-20 22:01:04 +0000 | [diff] [blame] | 17 | if debug: |
| 18 | self.installaehandler('****', '****', self.otherhandler) |
Jack Jansen | e504fa2 | 1998-09-30 09:11:51 +0000 | [diff] [blame] | 19 | oldparams = MacOS.SchedParams(0, 0) |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 20 | self.mainloop() |
Jack Jansen | e504fa2 | 1998-09-30 09:11:51 +0000 | [diff] [blame] | 21 | apply(MacOS.SchedParams, oldparams) |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 22 | |
| 23 | def quit(self, **args): |
| 24 | self.quitting = 1 |
| 25 | |
| 26 | def open_app(self, **args): |
| 27 | pass |
Jack Jansen | 8eff33b | 2000-06-20 22:01:04 +0000 | [diff] [blame] | 28 | |
| 29 | def otherhandler(self, *args, **kwargs): |
| 30 | print 'Unknown AppleEvent' |
| 31 | print 'args', args |
| 32 | print 'kwargs', kwargs |
| 33 | |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 34 | def cgihandler(self, pathargs, **args): |
Jack Jansen | 8eff33b | 2000-06-20 22:01:04 +0000 | [diff] [blame] | 35 | if debug: |
| 36 | print 'CGI request', pathargs, args |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 37 | rv = """HTTP/1.0 200 OK |
Just van Rossum | 158ce42 | 2000-03-26 10:12:26 +0000 | [diff] [blame] | 38 | Server: Unknown; python-cgi-script |
Jack Jansen | 5a1a175 | 1996-09-09 01:47:24 +0000 | [diff] [blame] | 39 | MIME-Version: 1.0 |
| 40 | Content-type: text/html |
| 41 | |
| 42 | <title>Python CGI-script results</title> |
| 43 | <h1>Python CGI-script results</h1> |
| 44 | <hr> |
| 45 | """ |
| 46 | rv = rv+'<br><b>Direct object:</b> %s\n'%pathargs |
| 47 | |
| 48 | for key in args.keys(): |
| 49 | if key[0] != '_': |
| 50 | rv = rv + '<br><b>%s:</b> %s\n'%(key, args[key]) |
| 51 | rv = rv +'<hr>\nSee you next time!\n' |
| 52 | |
| 53 | # Note: if you want to quit after each request enable the line |
| 54 | # self.quitting = 1 |
| 55 | |
| 56 | return rv |
| 57 | |
| 58 | if __name__ == '__main__': |
| 59 | CGITest() |