Kasulikke pythoni näitejuppe cgi jaoks: erinevus redaktsioonide vahel
Resümee puudub |
Resümee puudub |
||
| 25. rida: | 25. rida: | ||
</pre> | </pre> | ||
Niimoodi (kolm " järjest) saad koodi panna mitmerealise stringi, kus võivad jutumärgid otse sees olla: | |||
<pre> | |||
str="""siin on | |||
üks pikk string " kus jutumärgid | |||
sees""" | |||
</pre> | |||
Niimoodi saad juhusliku täisarvu: | Niimoodi saad juhusliku täisarvu: | ||
| 105. rida: | 111. rida: | ||
</pre> | </pre> | ||
Niimoodi saad splittida stringi juppideks whitespace järgi: | |||
<pre> | |||
str="ab c 123 a " | |||
m=str.split() # tulemuseks ['ab', 'c', '123', 'a'] | |||
</pre> | |||
Html vormi välja autocomplete saad niimoodi maha keerata: | Html vormi välja autocomplete saad niimoodi maha keerata: | ||
Redaktsioon: 19. oktoober 2011, kell 14:09
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" # mõistlik panna kohe programmi algusse 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
Niimoodi (kolm " järjest) saad koodi panna mitmerealise stringi, kus võivad jutumärgid otse sees olla:
str="""siin on üks pikk string " kus jutumärgid sees"""
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):
data="mingitekst"
f = open('/tmp/tahvel', 'a') # faili täielikuks ülekirjutamiseks pane 'a' asemel 'w'
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)
Niimoodi saad teha tsükli üle kogu massiivi:
m=["a","b","c"] for el in m: print el
ja sama asi harilike indeksitega:
m=["a","b","c"] i=0 while i<len(m): print m[i] i=i+1
Niimoodi saad splittida stringi juppideks whitespace järgi:
str="ab c 123 a " m=str.split() # tulemuseks ['ab', 'c', '123', 'a']
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> """