123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/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("""
- <html>
- <head>
- <title>The FooBar Bulletin Board</title>
- </head>
- <body>
- <h1>The FooBar Bulletin Board</h1>
- """)
- 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(row['subject'])
- try: kids = children[row['id']]
- except KeyError: pass
- else:
- print('<blockquote>')
- for kid in kids:
- format(kid)
- print('</blockquote>')
- print('<p>')
- for row in toplevel:
- format(row)
- print("""
- </p>
- </body>
- </html>
- """)
|