#!/usr/bin/python print('Content-type: text/html\n') import cgitb; cgitb.enable() import psycopg2 conn = psycopg2.connect('user=foo password=bar dbname=baz') curs = conn.cursor() print(""" The FooBar Bulletin Board

The FooBar Bulletin Board

""") curs.execute('SELECT * FROM messages') rows = curs.dictfetchall() toplevel = [] children = {} for row in rows: parent_id = row['reply_to'] if parent_id is None: toplevel.append(row) else: children.setdefault(parent_id, []).append(row) def format(row): print('

{subject}

'.format(row)) try: kids = children[row['id']] except KeyError: pass else: print('
') for kid in kids: format(kid) print('
') print('

') for row in toplevel: format(row) print("""


Post message

""")