cgi chat pythonban

hali!

elkezdtem chatet irni a honlapomhoz (http://sandorlev.selfip.org), de van egy kis gaz. mikor elkuldok egy uzenetet, egy masik uzenet felulirja, pedig listtel probaltam megoldani... it a kod:

---------------------------------------------------------------
#!/usr/bin/python
import cgitb; cgitb.enable()
from server import *
import slhtml
import time
import cgi

thetime = time.asctime()[11:16]
mlist = []

def msg():
print """
< p >< h2 >Message< /h2 >< /p >
< form method="post" action="%s/cgi-bin/chat.py" >
< p > Name:< /p >
< p >< input type="text" name="name" size="26" / >< /p >
< p > Message:< /p >
< p >< textarea name="msg" cols="30" rows="3" >< /textarea >< /p >
< p >< input type="submit" value="Send!" >< /p >
< /form >""" % (Server.host)

def main():
slhtml.start_html("chat.py", "#000000", "#00ff00")
print "< div align=\"center\" >< h1 >CGI Chat< /h1 >< /div >"
msg()
form = cgi.FieldStorage()
if form.has_key("name") and form.has_key("msg"):
mlist.append("[%s] <%s> %s" % (thetime, form["name"].value, form["msg"].value))
if mlist != []:
for message in mlist:
print message+"< br / >"
else:
pass
else:
if mlist != []:
for message in mlist:
print message+"< br / >"
else:
pass
slhtml.end_html()

if __name__ == "__main__":
main()
---------------------------------------------------------------

az slhtml egy modul amit magamnak irtam, nem nagy szam, kb annyibol all, hogy kiirja a headert... szoval legyszi segitsetek hogy tudnam megoldani hogy egymas utan tobb uznetet is kiirjon?

Hozzászólások

Valahol tárolni kéne a korábbi üzeneteket!

A CGI-nél a kérés bejön, a program elindul, lefut, visszaadja a választ, és leáll, a processz befejezi működését, megszűnik - nincs állapot őrzés! Ráadásul az mlist-et az elején törli...

a) mlist tárolása és mindenkori feltöltése fájlból (sqlite adatbázis a legegyszerűbb)
b) nem cgi, hanem Python web szerver - addig élnek az üzenetek/állapot, amíg fut a szerver.

GT