I would probably use session too unless you need to allow visitors to
keep two (or more) browser windows open within the same session and
complete the same operation simultaneously with two different inputs.

Massimo

On Jul 12, 4:10 am, Pystar <[email protected]> wrote:
> You can store your variables in the session storage object.
>
> On Jul 12, 7:56 am, Tim Michelsen <[email protected]> wrote:
>
> > Hello web2py folks,
> > what is the preferred way to exchange parameters or variables between
> > views and controllers?
>
> > I have a page where a form gathers input and then a plot is generated
> > according to these inputs.
>
> > I am currently using the following setup:
>
> > ## in VIEW
> > <h2>Input form</h2>
> >   {{=form}}
> > <h2>Submitted variables</h2>
> > {{=(request.vars.number, request.vars.hold)}}
>
> > <center>
> >    <img  src="{{=URL(r=request,f='image_mat_form',
> > args=[request.vars.number, request.vars.hold])}}"/>
> >    <!--
> >    <img src="{{=URL(r=request,f='image_pil')}}"/>
> >    -->
> > </center>
>
> > # in CONTROLLER
> > def plot():
>
> >      form=FORM(TABLE(TR("Your number:",INPUT(_type="text",
> > _name="number",requires=IS_FLOAT_IN_RANGE(0, 10))),
> >                      TR("Overlay new
> > curves:",INPUT(_type="checkbox",_name="hold", value=False)),
> >                      TR("",INPUT(_type="submit",_value="SUBMIT"))))
> >      if form.accepts(request.vars,session):
> >          response.flash="form accepted"
> >      elif form.errors:
> >          response.flash="form is invalid"
> >      else:
> >          response.flash="please fill the form"
> >      return dict(form=form,vars=form.vars)
>
> > def image_mat_form():
> >      number = float(request.args[0])
> >      hold = request.args[1]
> >      if hold == 'on':
> >          hold_check = True
> >      else:
> >          hold_check = False
>
> >      import sys
> >      import matplotlib as mpl
> >      mpl.use('Agg')
>
> >      #    from pylab import plot, savefig, legend, hold
> >      import matplotlib.pyplot as plt
> >      import numpy as np
> >      import scipy as sp
> >      import scipy.stats as st
>
> >      plt.hold(hold_check)
> >      t = np.arange(0.0 , 5.0, 0.05)
> >      s1 = np.sin(number * np.pi * t )
> >      s2 = s1 * np.exp(-t)
>
> >      plt.plot(t, s1, 'g--o', t, s2, 'r:s' )
> >      plt.legend(('sine wave ', 'damped exponential'))
>
> >      # plot([1, 2 , number])
> >      response.headers['Content-Type']="image/png"
> >      plt.savefig(response.body)
>
> >      return response.body.getvalue()
>
> > is there a better option for exchanging the form data than
> > args=[request.vars.number, request.vars.hold] -> number =
> > float(request.args[0]), hold = request.args[1]?
> > I will extend this and the "request.vars" will be many more.
>
> > Please tell if you do not understand my question.
>
> > Also I'd like to know how to add a file upload field to a FORM.
>
> > Thanks in advance,
> > Timmie
>
> > Reference:
> > Subject: [web2py:26240] Re: how can i write a PIL image object to 
> > responsehttp://permalink.gmane.org/gmane.comp.python.web2py/13567
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to