In index(), the value of 'image' ends up being the URL '/cavityflow/default/cavityflow_plot', which is not the URL of the image you want to load. Instead, that URL itself ultimately just returns another URL, '/cavityflow/static/images/cavityflow.gif'. So, your img src attribute is pointing to a string representation of the URL of the image, not the image itself. Instead, just have the index function create the image in /static/images, and use the image URL as the src attribute, like this: def index(): [snip] if form.accepts(request.vars, session, keepvalues=True): [snip] cavityflow_plot() # this creates the image and saves it in the static folder image=URL('static','images/cavityflow.gif') return dict(form=form, image=image) Note, as is, the cavityflow_plot() function is accessible as a URL. Since you are only using it internally and probably do not need/want to it be accessible via URL, you should either give it at least one argument or precede its name with a double underscore (controller functions that take arguments or start with a double underscore are not publicly exposed -- see http://web2py.com/book/default/chapter/04#Dispatching). Anthony
On Tuesday, August 23, 2011 6:02:51 AM UTC-4, Henri Heinonen wrote: > Ok. > > This is the default/index.html: > {{extend 'layout.html'}} > <h1>cavityflow</h1> > {{=form}} > {{if image:}} > <hr /> > <h2>Constants</h2> > <p>These are the constants that were used during the simulations.</p> > {{=BEAUTIFY(request.vars)}} > <h2>Figure</h2> > <img src="{{=image}}" alt="loading..."/> > {{pass}} > > This is the default.py: > http://pastebin.com/VGE69RG1 > > Does this work for you? > > On Aug 22, 1:10 pm, Henri Heinonen <henri.h...@gmail.com> wrote: > > default/index.html: > > {{extend 'layout.html'}} > > <h1>cavityflow</h1> > > {{=form}} > > {{if image:}} > > <hr /> > > <h2>Figure</h2> > > <img src="{{=image}}" alt="loading..."/> > > {{pass}} > > > > default.py: > > def index(): > > form=FORM('nx:', INPUT(_name='nx', _value=20.0), BR(), 'ny:', > > INPUT(_name='ny', _value=20.0), BR(), 'nt:', INPUT(_name='nt', > > _value=100.0), BR(), 'nit:', INPUT(_name='nit', _value=100.0), BR(), > > 'dt:', INPUT(_name='dt', _value=0.01), BR(), 'vis:', > > INPUT(_name='vis', _value=0.1), BR(), 'rho:', INPUT(_name='rho', > > _value=1.0), BR(), INPUT(_type='submit',_value='Make figure')) > > > > image=None > > if form.accepts(request.vars, session, keepvalues=True): > > session.flash = 'Form accepted.' > > session.nx=float(request.vars.nx) > > session.ny=float(request.vars.ny) > > session.nt=float(request.vars.nt) > > session.nit=float(request.vars.nit) > > session.dt=float(request.vars.dt) > > session.vis=float(request.vars.vis) > > session.rho=float(request.vars.rho) > > image=URL(r=request,f='cavityflow_plot') > > return dict(form=form, image=image) > > > > def cavityflow_plot(): > > return cavityflow(session.nx, session.ny, session.nt, session.nit, > > session.dt, session.vis, session.rho) > > > > def cavityflow(nx, ny, nt, nit, dt, vis, rho): > > ...*clip* *clip* ... # Here the application will make one hundred png > > images. > > os.system("convert *.png cavityflow.gif") > > # What do I need to add in here in order to return the cavityflow.gif > > onto the webpage of my application? > > > > The question is in the source code as a comment line. > > > > Yours sincerely, Henri Heinonen.