Kasulikke pythoni näitejuppe cgi jaoks: erinevus redaktsioonide vahel
Mine navigeerimisribale
Mine otsikasti
Resümee puudub |
Resümee puudub |
||
| 8. rida: | 8. rida: | ||
print "Content-type: text/html\n\n" | print "Content-type: text/html\n\n" | ||
print "tere tali!" | |||
</pre> | </pre> | ||
Redaktsioon: 19. oktoober 2011, kell 13:42
Scripti algusse sobib enamasti (cgitb.enable() ainult debugimise ajaks!):
#!/usr/bin/python import cgi,cgitb cgitb.enable() print "Content-type: text/html\n\n" print "tere tali!"
vormilt data võtmisel tasub kontrollida, kas data tuli, muidu annab Python errori:
formdata = cgi.FieldStorage()
if formdata.has_key("nimi"):
nimi=formdata['nimi'].value
if formdata.has_key("email"):
email=formdata['email'].value
if formdata.has_key("raha"):
raha=formdata['raha'].value
if formdata.has_key("now"):
now=float(formdata['now'].value)
See kood genereerib automaatselt refreshiva html lehe (now peaks olema arv: sekundid):
print """ <html> <head> <meta http-equiv="refresh" content='1;url=save.py?refreshing=1&now="""+str(now)+"""'> </head> <body> """
Niimoodi saad faili lõppu midagi juurde kirjutada (open(...,'a') ehk append mode):
if nimi and email and raha:
f = open('/tmp/tahvel', 'a')
data=nimi+","+email+","+raha+","+str(now)+"\n"
f.write(data)
f.close()
Niimoodi loed failist korraga kõik read massiivi (iga rida - string - üks massiivielement) ja samas kontrollid, et kui faili pole/lugemisviga, siis handlid
seda viga (siin lihtsalt data saab väärtuseks tühja array):
try:
f = open('/tmp/tahvel', 'r')
data=f.readlines()
f.close()
except:
data=[]
Html vormi välja autocomplete saad niimoodi maha keerata:
<input type="text" name="nimi" autocomplete="off">