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)})
>>
>

-- 



Reply via email to