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 response
http://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
-~----------~----~----~----~------~----~------~--~---