Thank you Massimo! Jarrod On Sunday, September 9, 2012 5:45:16 PM UTC-4, Massimo Di Pierro wrote:
> Yes. You store the data in session, so the plot is only accessible to the > user who created it until the session is deleted. > > You may want to look at this as well: https://github.com/mdipierro/canvas > > On Sunday, 9 September 2012 16:05:17 UTC-5, Jarrod Wilcox wrote: >> >> Please forgive the newbieness of question. >> >> I am generating interactive plots using matplotlib as suggested by >> cookbook, which writes a file and then pulls it into a view. My question >> is whether that file is protected from other users seeing it. A second >> question is whether, as I hope, the plot file will go away after the >> session is over. >> >> The application takes in financial planning data, does some calculations >> in a module and then writes both a message and a graph to the screen. >> Current graph is a dummy. >> >> @auth.requires_login() >> def planA(): >> var={} >> outputstr='' >> graph='' >> form=SQLFORM.factory( >> Field('I', requires=IS_INT_IN_RANGE(0,10000000)), >> Field('S', requires=IS_INT_IN_RANGE(0,10000000)), >> Field('y', requires=IS_INT_IN_RANGE(0,10000000)), >> Field('r', requires=IS_FLOAT_IN_RANGE(0.01,0.05)), >> Field('tb', requires=IS_INT_IN_RANGE(0,100)), >> Field('k', requires=IS_INT_IN_RANGE(0,100)), >> Field('vo', requires=IS_INT_IN_RANGE(0,10000000)), >> Field('Adjust', >> requires=IS_IN_SET(['I','S','y','r','tb','k','vo']))) >> >> if form.process(keepvalues=True).accepted: >> response.flash='form accepted' >> var['I']=int(request.vars['I']) >> var['S']=int(request.vars['S']) >> var['y']=int(request.vars['y']) >> var['r']=float(request.vars['r']) >> var['tb']=int(request.vars['tb']) >> session.k=var['k']=int(request.vars['k']) >> var['vo']=int(request.vars['vo']) >> missing=request.vars['Adjust'] >> from jwplanner import findmissing >> output=findmissing(var,missing) # adjusts designated input to >> find best plan >> outputstr="Revised %s = %s" % (missing, output) >> graph=graph_planA() >> elif form.errors: >> response.flash='form has errors' >> else: >> response.flash = 'please fill in the form' >> >> return dict(form=form,outputstr=outputstr,graph=graph) >> >> @auth.requires_login() >> # question do plots need to be stored in session to prevent conflict? >> def graph_planA(): >> return HTML(BODY( >> IMG(_src=URL('planA_plot')))) >> >> @auth.requires_login() >> def planA_plot(): >> response.headers['Content-Type']='image/png' >> x=range(0,session.k,1) >> y=[xi**1.3 for xi in x]ma >> return myplot(ylab=T('Thousands of >> Dollars'),xlab=T('Years'),data={'data':zip(x,y)}) >> > --

