def pageheader(app='PyMailCGI', color='#FFFFFF', kind='main', info=''):
print('Content-type: text/html\n')
print('
print('
%s %s
' % (color, app, (info or kind)))
def pagefooter(root='pymailcgi.html'):
print('
')
print('<img src="../PythonPoweredSmall.gif" ')
print('align=left alt="[Python Logo]" border=0 hspace=15>')
print('Back to root page' % root)
print('')
def formatlink(cgiurl, parmdict):
"""
make "%url?key=val&key=val" query link from a dictionary;
escapes str() of all key and val with %xx, changes ' ' to +
note that URL escapes are different from HTML (cgi.escape)
"""
parmtext = urllib.parse.urlencode(parmdict) # calls parse.quote_plus
return '%s?%s' % (cgiurl, parmtext) # urllib does all the work
def pagelistsimple(linklist): # show simple ordered list
print('
- ')
- \n %s' % (link, text))
print('
for (text, cgiurl, parmdict) in linklist:
link = formatlink(cgiurl, parmdict)
text = cgi.escape(text)
print('
def pagelisttable(linklist): # show list in a table
print('
View | \n %s' % (link, text)) print(' |
---|
def listpage(linkslist, kind='selection list'):
pageheader(kind=kind)
pagelisttable(linkslist) # [('text', 'cgiurl', {'parm':'value'})]
pagefooter()
def messagearea(headers, text, extra=''): # extra for readonly
addrhdrs = ('From', 'To', 'Cc', 'Bcc') # decode names only
print('
%s:' % hdr) print(' | <input type=text ') print(' name=%s value="%s" %s size=60>' % (hdr, val, extra)) 1288 | Chapter 16: The PyMailCGI Server |
---|