Example CGI applet

This commit is contained in:
Jack Jansen 1996-09-09 01:47:24 +00:00
parent f4c4f9e9e1
commit 5a1a175170
3 changed files with 169 additions and 0 deletions

View File

@ -0,0 +1,2 @@
# Debug applets quickly.
execfile('realcgitest.py')

View File

@ -0,0 +1,122 @@
(This file must be converted with BinHex 4.0)
:%'0RDA4PFh3ZBfGT,R*cFQ-!FR0bBe*6483"!*!((`VqD`#3"!%!!!!G33!!(%%
!!!(*0K3J9#"S!"3J8(d4X'J4!$S"CbB5,`a1ZJ)-$$S!@RN-BfGTG'9cG#jbFh*
M,J)!!!"bFh*M8P0&4!%!!%!!D`!!FR0bBe*6483"!!"!!'X!N"+Z*Rm,!*!'(`V
r%F#SD3%G3"(rma0`!"!Zrr1pdK&Q%&%f[P9V!3&#4,fK[P9V!3%`86)"Caj%&3`
!!"aP%R!!%#j$&3`!!"pL"R!"B!!"!3)X@P3Y,N5p!3!E2!&Q-#G92KT+J#"6!LJ
![`!Z)J$Y#3)"!%#$+0Xd%kRA,`a1ZJ%*5QGV!3#Q9d-k!!!"!"%!!!!""q!!J3C
J!!!(i!#3!!'!!*!!!B!!N!$rrJ#3!2rq!"$rr`#4rm#!NIq!3*(r-##$rmJ3Jq"
rMi2q-!H(r`!(Krq!"iIri!F2rrrR$rrrh`rrrqFGcrrJ'Elrq"emCMJp(YVF2@l
Dh$eZfYapRQEHIrrrrRrrrri!N!N2m!!!$r!!!!r`!!!2m!!!$r!!!IrrJ!(rri!
"rrq!!rrrJ!2rrm!$rrrJ"rrrm!Irrrm(rrrr$rrrr`rrrrm2rrrr(rrrrarrrrm
Irrrr2rrrq$rrrr`rrrrmIrrrrRrrrrjrrrrqrj!8!*!(#P$J!"k%J!!(S5!!!!"
!!*!%%i!6J!%!*m!Rm#F1$JB2KJrQ'VJDX"r`!*!%rj!J!!!"!!!"!!!3!S!!"!4
!!%3))!"9m"!!85!)!&$$p!"3aKS!%r`r!&2m(S"(r#Y!6rJK)&Ii$j!!Er`rL%r
m2i62r"q#Ari2JArq$i)IrJF%,Im$##Yr!K!V23BJD@HB3'NRm)"rri%!!#!#!!!
3"!!!#!J!!!33!!!#)!!!!8!!!!#!!!!"!!!3!i!!"!I!!%32i!"9rr!!8Iri!&$
rr!"3rri!%rrr!&2rri"(rrr!6rrri&rrrr"rrrriIrrrr2rrrrjrrrrrIrrrrKr
rrr`rrrri2rrrm$rrrq"rrrr!IrrrJ(rrr`!!2ri!!"rm!!!2q!!!"r!!!!2J!!!
"`!!!!)!!!!!#!*!)$`#3#3m!N!A`m!#3#3m!!!!2$!m!N!F2!!m!!!$`c-$`!*!
'$`m2"99I$-c-$`#3"Jm2!!8!A-c-c-$`!*!&$`m!!&AG!2rrr!m!N!82$`!!9Gd
2KhGrm2!!N!82!&999IKhGi[r$`#3"!m2!&999BKhGhZ2m2!!!!!2!!99999EGhH
(Ylm2!!!!$`$e9999@hGhKhGr`2!!!!m2"99999GhGhHlLr`2!!!2m&@3"AGhZiZ
,r-$`!!m-9C!&GhHlZl[mc!m!rma9N!9hGhZlL2c-`2!2j9@3"AGhGiL,r-c-c`r
e9C!&9hGhZlrmc-h`!!99N!9AGhGl[mc-h`!!89899C!%GhGhrmc0m!!!89&9&99
99AGhGrc-h`!!!&&494&4&49hGhrmcI!!!!94848984899hrrc0m!!!!&89%9%9%
9&9rrc-h`!!!!"9@3"ec-c0m!N!RphGhGc-h`!*!*$phGhFcI!*!,rFc-cI!!N!X
2h-cI!*!0rFh`!*!0$pm!N!r`!*!*"!#3%2m!N"2r!*!+r`$r!*!8r`#3"rm!+`$
r!*!2r`!!!2m!N!Er!#XV+`$r!*!1r`$r!2m!X*!%r`!VN!8!r`#3$Im!r`!!!,!
!!,!VN!J!r`#3$2m!r`#3",#`q[S!!2q3"5X!r`#3#rm!r`#3",#`q[S!rjp)N!6
rr`$r!*!-r`!!X*!'rjp)N!5IRrrr!2m!N!Rr!2m!!,#3"M1I5*!&-jrrr`$r!*!
)r`!!!,#3#$0)N!3c5$0)-rm!r`#3"rm!!2q`N!Jc5*!%RdL3"2mV!2m!N!Er!2m
!X*!)5*!(Rc-c-rmV!2m!N!Arr`#`N!T)N!5I-c-cRc2r+bX!r`#3"2m!+l#3#NL
3"$1I-j!%rbXV+`$r!!$rrbXVX*!+5*!&-c-cRjrr+j!%!2m!!2rmX*!,5*!'Rjq
I-rmVN!Er!2rrX*!-5*!&-c-crrmVN!6kr`#3",#3$%L3"TmcrbZ3"2Vr!*!%X!@
`X!@`N!P)N!ErrbXV+rVr!*!&X!@`"E#`"E#3"dL3"[mV+b[kr`#3"V!&X!@`X!8
&X!8&X!@`5*!&rrmV+rVr!*!'X,!&X!8&X!@`X!8&X!@`X%K)rrrr+b[kr`#3"l#
`"E!&"E!&"E!&"E!&X,$rrrmV+b[kr`#3#,#3%#Z3"IVr!*!5rrU3"bXV+rVr!*!
8rrU3"LXVq[m!N"ErqLZ3"IVr!*!BrrSV+b[kr`#3'[rk+rVr!*!FrrVr!*!Hr`#
3%N!)J#P!!L!%d#qS0M3ZXQia2b)Ia#U)2j!!!L!"3!#!!!!)J#R!!q!(m#ri2r`
rrRrr2riIr$ri2r!$i!(!!)!!N!@!!!$`!2!!N!6`m!m2!*!'m-$`!*!%$`cr$`!
!!2"9AhI`m!!!r`@(HUm2!!$`99H)Vm$`$ra99hUXc-m!p999Grc0m!!&999rc0m
!!&&489h0m!!!9999AGm!N!AphI!!N!82h`#3"r!!N!d"!*!&r`!!!2m!N!Rr!2m
!!2m!r`#3$2m!+`$r!*!+r`!Vrrm!r`#3"[m!X,#`rdK)r`$r!*!&rrm!X10)5)Q
*r`$r!*!%r`#`X,")iq1*rbX!r`!!rrmVX,#`5%L*L5Z3"2m!!2q`N!9)52mV+rR
r!*!%X*!&52mV+rRr!*!%X!@`"E!&X2NVqIm!N!@`N!IjqIm!N!VrqIRjr`#3$2r
jr`#3$[m!N"S(39"36!!"!!!!!3!Irri!%!!$!"%!JS!4!3*!%c1#)"9C)K!9B32
i%c%UL"!!!!J3ErX)%!!!#"!2Z!J3!!!)%!rIU"!!!!J3!H[S%!!!#"!"p`J3i!!
)%1([b""!!!J4mEk)%I!!#"(`2fJ6q!!)%rJrL"2i!!J@V$I)&U`!#"Im!!J3!!!
)(rrrq"rrrJ!Irrm!(rrrJ"rrrm!IrrrJ(rrrm"rrrrJIrrri(rrrq"rrrrJIrrr
i(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrr
i(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri!!!#!!!2rj!*m!#
3"3m!N!Rr!*!&$`!&!*!%8!!!mI!!N!32!!8!!!!&!!!!m4m!N!32!&8!93"98!!
!m4(`!!!!$`@3"&!&!$!!m4%I!!!!$`8&"9!!"3!!!2rrrr!!!!m!93"9!!8!-&"
38!$`!!!2!*!-m!!!$`!!"9"9N!4393!!m!!!$`#3$2!!!!m!N!4999"98!!!!2!
!!!m!N!c`!!!2!*!%9999"9998&$`!!!2!*!-m!!!$`#3"3998&"999$`!!!2!*!
-m!!!$`#3"3999399!!$`!!!2!!"98!#3#2!!!!m!!&93!!998&9993$`!!!2!!!
&!*!*m!!!$`!&998!"9"999"3!2!!!!m!"999!*!)m!!!$`!&998!!!"9998&82!
!!!m!99998!#3"r!!!!m!99998!!!99998!$`!!!2!&9999!!N!I`!!!2"9&4898
!!&8&998!m!!!$`9489&9!*!(m!!!$`99N!3!N!I`!!!2!*!-m!!!$rq3$2!!!!!
%!*!%rj!8!*!-r`#3%[rr!*!,r`!!!,!!N!L`!*!&r`Ar!*!+r`!!!,!!N!H`!*!
'r`8&r`#3#Im!!,#`!!#`X!!!X,#`!*!&r`8&"Im!N!Mr!,!!X!#`!,#`!!#`!!$
B!!!!r`@3"2m!N!Ir!,!!X!#`X!#3",!!N!ErN!F!N!Er!!#`X!!!X,!!!!#`!!$
B!,!!X!#`!!!!r`#3"[m!N"Mr!*!'r`#3"E#`!,#3#3#`X!#3"2m!N!Er!*!Br`#
3"[m!N!L`N!8!X,#`!*!(r`#3"[m!N"Mr!*!'r`#3#,#3"J#`N!B!X!$r!*!'r`#
3'2m!N!Er!*!,X*!%!,!!X*!&!2m!N!Er!*!Br`#3"[m!N!Z`N!8!X,#`!*!%r`#
3"[m!N!5`X,!!N"(r!*!'r`#3",#`X!#3",#3"!#`N!B!!2m!N!Er!*!&X!#3%[m
!N!Er!!!!X*!&!!!!X,!!X*!&!,!!!!$r!*!'r`!!!,#3"3#3%2m!N!Er!!!!X*!
&!*!'X*!'!,#`!2m!N!Er!!#`N!F!N!rr!*!'r`!!X*!(!*!&X*!(!!!!r`#3"[m
!!,#3"`#3$rm!N!Er!,#`"E!&X!@`X!#3",#`!,#3"3!!r`#3"[m!X,!&X!@`"E#
`!*!1r`#3"[m!X*!*!*!1r`#3"[m!N"Mr!*!'rj!D!*!'3(r`3"K99&9H3!*2qN!
#32*'!NCk6`*21Pq#Al*!!Rrqrj!J!!!!J!rrN!8!!!m!N!32m!!2"38&!`mI!!m
&"38$$rr`$`#3"[!2!&@3"&$`$`#3"[!2!!!!998!m!m!"9!!!!$`$`!&8!9982!
2!&99!!!!m!m!998!99$`$`9999!!!2!2"9998&8!m!m!N!E`$rq3"[!!!!%!!2q
3#`#3"Im!N!Rrr`#3"2m!X!#`!,!!f!$r"Im!!!$r!,!!X!#`!0J!rj!%!!$r!*!
-r`!!r`!!X*!*!2m!!2m!N!cr!!$r!*!'X*!%!!$r!!$r!!!!X,!!N!Ir!!$r!!!
!X,!!!,#3"!$r!!$r!!#`N!3!N!Er!!$r!!#`N!3!!,#`X!$r!!$r!,#3"J#3"Im
!!2m!X*!'!,#`!!$r!!$r!*!-r`!!rj!1!*!%"e4&@&3!N!8"!!!"!!!!!S!!!!4
!!!!)S!!!%p!!!#*)!!""K!!!JB)!!3IK!!)%))!'#$&!#JJ4)"Irra!Z#!%)5J3
""-S%!3*ra!%$2m)""KrL!3`[r`%B+hm"-#XP!@"VCB(!Db@"J(rrJ`!#-!F!!KJ
0!!)-'3!#"M%!!J0K!!)"`3!#!)%!!!%!!!!$J!!!"m!!!!rJ!!!Im!!!2rJ!!(r
m!!$rrJ!"rrm!!rrrJ!Irrm!2rrrJ(rrrm$rrrrKrrrrmrrrrrRrrrrmrrrrq(rr
rr$rrrrJrrrr`2rrri(rrrm"rrrq!Irrr!!)rr`!#(rd!!Jrj!!)(m3!#!q%!!J(
"!!)!J3!!!!)!N!J2!*!2m2!!N!d2$!m!N!h`c0$`!*!,$`a993m!N![`c&!&`2!
!N!N2$-c&AGd2!*!*m-c-a9hG`2!!N!F2$-c&999Fc!m!N!I`c-c&!!"Fc-$`!*!
&$rhFc&!!!&AFcmm!N!A`rGc-8!!!"Gc2h2!!!!!2"Iq3#Gd2!!!!m&Am`!"9h-c
-c-rG`2!!$`a3r-!!"Gc-c-c2hF`2!2r-82c!!!AGc-c-cph-`2!2j9Aqj3!&AFc
-c-rGc-c2!299rZ8!!&h-c-c2hFc0m!!&9IlP8!"Gh-c-cph-h`!!89Aqj9999Gc
-c-rGcI!!!&&4rY9999AFc-c2hGm!!!"48Il48489hFc-cph`!!!&89(qe9%9&9h
-c-rI!!!!"9&4rY&4&49Gc-c2m!!!!!999IlP9999AGc-h`#3"r!!rGhGhGc0r`#
3"r!!$phGhGcI$`#3"r!!!2h-c-h`$`#3"r!!!!rFc0m!$`#3"r!!!!$pcI!!$`#
3"r!!!!!2h`!!$`#3"r!!N!6`!!!2!*!'"!#3%2m!N"lr!2m!N"cr!#X!r`#3'[m
!+b[k!2m!N"Mr!#Z`N!3!r`#3&[m!+bZ`!!#`+`$r!*!8r`!VN!5`X2VkqJ$r!*!
5r`!VN!@`X2VkqLX!r`#3%2m!+j!%X*!'+bXV!2m!N!lr!#Z3"E!!N!5`+j!%!2m
!N!crrrVk+bXVX!#3"E#`qLXVrb[r!*!+r`$rq[SV+bZ`!*!'X2SV+rrk+rm!N!M
r!,$rN",kqJ$r!*!'r`#`X2mV+`!!!,#`qLZ3#2rkqLX!r`#3"2m!+l!!rbXV!*!
%X2SVN!Mrq[SV+`$r!!$rrbXVX!$r+bX!N!5`q[SVN!Irq[SV+bX!r`!!rrb`X,$
rUkZ`!!!!X,$k+j!(rrVk+j!&r`!!rl#`X2qVUl!!N!5`qLZ3"rrkqLXV+rVr!*!
%X,#`rkZVX,!!!!#`q[SVN!Erq[SV+rVr!*!%X!@`X2qVUl#3"rSVN!Erq[SVq[m
!N!@`"E!&rkXcX*!(qLZ3"[rkq[Vr!*!'X!@`"IqV-`@`"3@`"E$kqLZ3"Irkq[m
!N!D`X!@`"IqV-l#`"3@`"E#`qLZ3"Irkr`#3"l#`"E!&rkXc"E!&"E!&X,$k+j!
&rrm!N!L`N!ArUkZ`N!MkqLXV+rVr!*!1r`!!!2rkN!JV+rVrr`#3$[m!N!6rqT!
(+rVr!2m!N!lr!*!&rrSVN!Akr`!!r`#3$[m!N!ErqLXV+rVr!!!!r`#3$[m!N!I
rqL[kr`#3"2m!N!lr!*!)rrVr!*!&r`#3$[m!N!Rr!*!'r`#3#d!!J!&!!L!%%!M
S%%3[qQS*13SC$#U)2jJ++!P)#)J)#!#!!F!$i!I`$rJIr$rqIrmrrKrm2rJrq![
S#FJ)L!J)!!!!J!#3"2!!N!B2$`#3"[$!m!#3"!m-c!m!N!6`c&93m!!!$`c-aF`
2!!$`rj!%m2!2r2"Gc-cpc`$em!AFc2h`!!A`"Gc-r`!!8I&4AFh`!!"9p99Ghr!
!!!$`rGh`m!!!!2!2h`$`!!!!m!$`!2!!!!$`!!!!m!!!!!%!N!Rr!*!1r`$r!*!
-r`!V!2m!N!Vr!#XV+`$r!*!)r`!V+l#`X!$r!*!'r`!VN!5`+bX!r`#3"2m!rj!
*!2m!!2rr+rm!X2NVN!6rq5[r!!$rX2m!!,$j+bXVrrRr!*!%X2m!!,$j+bXVrrm
!N!5`"Im&X!@`q5[jr`#3"E#`rl#3"2Rjrrm!N!Ir!2rjqIRr!2m!N!Ir!!$rqIm
!!2m!N!Ir!!!!r`!!!2m!N!Ir!*!(r`#3"JG"G'e`!!-!N!3X8(Pd1!!!!!&'8N9
'!!)!!3#"!!!!J!!$!)0*3diM!!)!!3#!!!!!J3!$!))!!!!"!*!%#3#3"J%"!3!
!!3!!!"e"!!!F33!!!FN!ml'N(%J!!!!F!ES!#N*14%`!!!"D5801)`!$!'C659T
&!!!!PNC548B!!J#LD@0c)`!$!-CTBf`d!!)!pQPME$J!!J%DD@0c0!!#!6jTBh-
i!!)"BP"jG$J!!!''8'p`G!!!!C)!J2rr!!!Er`#3"!%Xrrm!N!Q!rrm!!!&@!*!
&JIrr!!!+13#3"B,rr`!!%a`!N!6rN!3!!!%%!*!&JIrr!!!+,J#3"B$rr`!!%a%
!N!@$rrm!!"[d!*!%!5crr`!!!4)!N!@!rrm!!!KL!*!&JIrr!!!443#3"B,rr`!
!'LJ!N!@!rrm!!!*D!*!&JIrr!!!,23#3"B,rr`!!&#!!N!@!rrm!!!4H!*!&JIr
r!!!033#3"B,rr`!!&L3!N!@!rrm!!!LQ!*!&JIrr!!!4L3#3"B,rr`!!'Q`!N!@
!rrm!!!NU!*!&JIrr!!!5$3#3"B,rr`!!'[!!N!SF,`#3"B(rr`!!($3!N!316hG
ZCA)JFQ9cEh9bBfAj%`:

View File

@ -0,0 +1,45 @@
"""cgitest - A minimal CGI applet. Echos parameters back to the client.
"""
from MiniAEFrame import AEServer, MiniApplication
class CGITest(AEServer, MiniApplication):
def __init__(self):
MiniApplication.__init__(self)
AEServer.__init__(self)
self.installaehandler('aevt', 'oapp', self.open_app)
self.installaehandler('aevt', 'quit', self.quit)
self.installaehandler('WWW\275', 'sdoc', self.cgihandler)
self.mainloop()
def quit(self, **args):
self.quitting = 1
def open_app(self, **args):
pass
def cgihandler(self, pathargs, **args):
rv = """HTTP/1.0 200 OK
Server: NetPresenz; python-cgi-script
MIME-Version: 1.0
Content-type: text/html
<title>Python CGI-script results</title>
<h1>Python CGI-script results</h1>
<hr>
"""
rv = rv+'<br><b>Direct object:</b> %s\n'%pathargs
for key in args.keys():
if key[0] != '_':
rv = rv + '<br><b>%s:</b> %s\n'%(key, args[key])
rv = rv +'<hr>\nSee you next time!\n'
# Note: if you want to quit after each request enable the line
# self.quitting = 1
return rv
if __name__ == '__main__':
CGITest()