[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