probleme mit eval
Verfasst: Samstag 30. Dezember 2006, 22:12
ich bin grad dabei mein im letzten thread geposteten script uebersichtlicher zu schreieben. meien idee ist die, das jeden eingelogten benutzer die webpage ueber eien klasse kriegen (was ist sauberer als eien klasse?). jeder eingelogte benutyer hat auch seiene individuelle klasse (VirtualFiles), so dass ich mich nicht darum kuemern muss wie daten, die nur fuer die aktuele season sind gespeichert werden
hab jetzt aber ein kleiens problem mit eval, koennt ihr mir sagen wie zeiele 66 richtig lauten muesste?
danke
edit:
die beschreibung ist mir nicht ganz gelungen, kugt euch am besten nur den code an ( :
hab jetzt aber ein kleiens problem mit eval, koennt ihr mir sagen wie zeiele 66 richtig lauten muesste?
danke
edit:
die beschreibung ist mir nicht ganz gelungen, kugt euch am besten nur den code an ( :
Code: Alles auswählen
import socket
import cgi
def notFound(param):
return "file not found/you not requeted any file"
def login(param):
print "login wird durchlaufen"
return "you loged in", True
def parseReq(req):
method, req, proto = resp.split(" ", 2)#vileicht auch 2
#try:
if method == "GET":
try:
query = req.split("?")[1]
except:
query = ""
elif method == "POST":
query = resp.split("\r\n\r\n")[1]
#except.. . .er.b
param = cgi.parse_qs(query)
param2 = {}
for key, val in param.iteritems():
param2.update({key: "".join(val)})
param = param2
return param
class VirtualFiles:
def __init__(self):
self.cmdData = []
def edit(self):
print "edit wird urchlaufen!!"
return "edit"
seasons = {}
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 80))
s.listen(10)
defs = []
for i in dir(VirtualFiles):
if not i.startswith("_"): #sich an der convention halten
defs.append(i)
print "defs ist", defs
while 1:
socket, ip = s.accept()
ip = ip[0]
print "connected by", ip
resp = socket.recv(512)
param = parseReq(resp)
print "param", param
if not ip in seasons:
html, bool = login(param)
if bool:
seasons.update({ip: VirtualFiles()})
else:
if "action" in param and param["action"] in defs:
eval("html = seasons[ip]." + param["action"] + "()")
else:
html = notFound(param)
socket.send(html)
socket.close()