Cik novērots un visiem labi zināms, tad latvijā 95% web aplikācijas veido PHP programmēšanas valodā, 5% varētu būt Perl,Python,Ruby, mošk vēl kāds VBasic'ā dod vaļā, nez varbūt vēl kādā citā valodā. No šiem minētajiem esmu izmantojis Python, Ruby un protams PHP. Par PHP latvijas interneta resursos ir rakstīts un stāstīts pietiekami daudz, tapēc to liksim mierā :) bet parunāsim par Python, kaut arī Ruby būtu ievērības vērts.
(tie procenti ir pašizdomāti, bet tā aptuveni varētu būt)
Par to vai lietot Python vai lietot PHP, vai lietot kādu citu programmēšānas valodu web izstrādē nestrīdēsimies, jo tas ir pilnīgi individuāli, bet mazliet iepazīt citus veidus nekad nenāk par ļaunu.
Tātad, lai kaut ko sāktu jums ir nepieciešami šādas programmas:
Kad viss ir sainstalēts, tad nepieciešams nokonfigurēt apache serveri. Vispirms jaielādē mod_python modulis, to var izdarīt pievienojot šo rindu apache konfigurācijas failam:
LoadModule python_module libexec/mod_python.so
Pārlādējiet apache, lai pārliecinātos, ka modulis tiek ielādēts, ja netiek, tad visticamāk problēma varētu būt ar moduļa atrašanās vietu - respektīvi apache to nevar atrast norādītajā moduļu direktorijā, tapēc pārbaudiet, vai tiešām tas tur atrodas. Ja tas viss ir izdarīts, tad jaķeras pie virtuāla hosta, kur mēs ieliekam šādu te:
<location>
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
PythonAutoReload On
</location>
Pieņemu, ka to jūs pievienojat strādājošam virtuālajam hostam. Pārlādējam apache un ejam uz savu
document root un izveidojam tur mapi
/python, tad iekš šīs mapes izveidojam failu
test.py ar šādu saturu:
from mod_python import apache
def index(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
Tagad izsaucot adresi
http://manswebs.lv/python/test.py Jums vajadzētu ieraudzīt maģisko sveicienu
Hello World! - ja Jūs to neredzat, tad kaut kas nav nokonfigurēts pareizi.
Katru funkciju, kuru izveidosiet šajā failā, varēsiet izsaukt test.py/mana_funkcija, mūsu gadījumā funkcija saucas index un tā tiek izsaukta pēc noklusējuma, bet tā pat to var izsaukt no test.py/index.
Tagad izveidosim kaut ko mazliet intresantāku. Izveidojam mapi templates un iekš tās failu form.html:
<h2>Ievades forma</h2>
<form action="" method="post">
<p><label>Vārds:</label> <input type="text" name="vards" /></p>
<p><label>Uzvārds:</label> <input type="text" name="uzvards" /></p>
<p><input type="submit" name="submit" value="OK" /></p>
</form>
Un tad otru failu
data.html ar saturu:
<h2>Ievadītie dati</h2>
<p><strong>Vārds:</strong> $vards</p>
<p><strong>Uzvārds:</strong> $uzvards</p>
Pirmais fails ir datu ievades forma un otrā failā tiks attēloti ievadītie dati. Lai tas viss funkcionētu izveidojam jaunu funkciju:
def data(req):
import os,string # importējam nepieciešamos moduļus
curdir = os.path.dirname(__file__) # noskaidrojam esošo direktoriju
req.content_type = 'text/html; charset=UTF-8'
if req.form.has_key('vards') and req.form.has_key('uzvards'): # pārbaudam, vai ir saņemti POST dati
tpl = string.Template(file(curdir + '/templates/data.html').read()) # atveram mūsu data.html failu
html = tpl.substitute(vards=req.form['vards'],uzvards=req.form['uzvards']) # piešķiram šablonam vērtības
req.write(html) # ierakstam to visu servera atbildē
else:
req.write(file(curdir + '/templates/form.html').read()) # ielādējam mūsu form.html failu
return apache.OK
Tagad izsaucot
test.py/data parādīsies ievades forma, aizpildām laukus un spiežam ok. Rezultātā mēs ieraudzīsim ievadītos datus.
Veidojot webu ar pliku mod_python ir nedaudz sarežģīti, jo daudzas lietas ir jadara pašam, lai to atrisinātu var izveidot pāris funkcijas, kuras atvieglo to visu, vai arī lietot kādu Framework, kā Django vai Turbogears, kur ir padomāts par to, lai web izstrādes procesu pēc iespējas saīsinātu. Visu nepieciešamo web izstrādei ar Python var iegūt šeit.