[python] volanie skriptov
tdc
tdc na phreaker.net
Středa Březen 3 11:32:22 CET 2004
Martin Herceg wrote:
> Dobry den
> ma niekto skusenosti s volanim skriptu z Page Template?
> mne to stale nechce vratit povodnu URL
> teda zavolam tento skript a poslem mu udaje z formulara
> ---------------------------------------------------------------------------------
> PAGE TEMPLATE
> ---------------------------------------------------------------------------------
> <form name="pokus" method="post" action="skript"><input type="submit"
> name="submit" value="odosli">
> <input type="text" name="orders.premenna:records"></form>
> <span tal:define="global items here/skript" tal:condition="items">
> <table><tr><td tal:content="items/prva">pokus</td></tr></table></span>
>
> ---------------------------------------------------------------------------------
> SKRIPT
> ---------------------------------------------------------------------------------
> session=context.REQUEST.SESSION
> items=session.get('items',{})
> if order['premenna']=='1':
> item = {'prva': '0258'}
> session['items']=item
> return container.index_html(REQUEST)
> else:
> item = {'prva': '2582'}
> session['items']=item
> return container.index_html(REQUEST)
>
> a podla vsetkeho by mal vratit stranke index_html
> updatnute items co aj urobi a ona ich pouzije
> problem je v tom ze url uz nieje .....:8080/index_html
> ale .....:8080/skript
> neviete niekto co s tym ?
>
Dle me to dela spravne. Tedy pokud tomu spravne rozumim. Zadats script,
aby ti vratil (v ramci SVEHO contextu) vyrenderovanou PageTemplate
'index_html'. Takze script ji spusti, vyrendruje a vrati ji jako SVUJ
vysledek. Pokud chces na tu sablonu presmerovat, tak tusim pres:
return RESPONSE.redirect(url)
coz plati v pripade, ze mas bindnutou RESPONSE do toho scriptu. Pokud ne
a mas bindnutej jen REQUEST, tak:
return REQUEST.RESPONSE.redirect(url)
jinak (pokud mas bindnutej jen context :))
return context.REQUEST.RESPONSE.redirect(url)
Vysledkem tohohle volani je Location HTTP hlavicka, takze pozor na to
(nemuzes do te sablony nic predat - leda tak pres GET).
_tdc_
Další informace o konferenci Python