Kasulikke pythoni näitejuppe cgi jaoks
Scripti algusse sobib enamasti (cgitb.enable() ainult debugimise ajaks!):
#!/usr/bin/python import cgi,cgitb cgitb.enable() # see peaks siis kusagil üpris algul olema 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)
Niimoodi saad juhusliku täisarvu:
import random # see oleks siis kusagil programmi alguses teiste importide seas ... oppmove=random.randint(0, 2) # täisarv kas 0,1,2. Juhusliku floati jaoks 0...1 tee random.random()
Niimoodi saad teha stringi täisarvuks ja täisarvu (või mistahes muu data!) stringiks:
strx="1" x=int(x) uusstrx=str(x)
NB! Kui proovid stringile arvu liita a la "abc"+1 saad errori. Enne pead arvu tegema stringiks a la "abc"+str(1)
Niimoodi saad faili lõppu midagi juurde kirjutada (open(...,'a') ehk append mode):
f = open('/tmp/tahvel', 'a')
data=mymove+" "+oppmove+"\n"
f.write(data)
f.close()
Niimoodi saad programmi töö hoobilt lõpetada:
import sys # see oleks siis kusagil programmi alguses teiste importide seas ... sys.exit(0)
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/myfile', 'r')
data=f.readlines()
f.close()
except:
print "ei saanud faili avada!"
sys.exit(0) # eeldab, et oled varem teinud import sys ja juba trükkinud content-type rea koos tühja vahereaga
Sama, mis eelmine, aga terve fail loetakse ühe stringina:
try:
f = open('/tmp/myfile', 'r')
data=f.read()
f.close()
except:
print "ei saanud faili avada!"
sys.exit(0)
Stringi kirjutamine faili lõppu lisaks:
try:
f = open('/tmp/myfile', 'a') # faili täielikuks ülekirjutamiseks pane 'a' asemel 'w'
f.write("minulisa") # reavahetuse lisamiseks pane stringi sisse \n
f.close()
except:
print "ei saanud faili avada!"
sys.exit(0)
Html vormi välja autocomplete saad niimoodi maha keerata:
<input type="text" name="nimi" autocomplete="off">
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> """