I found *MY* error!! 

At the end of the class definition file I was instantiating that class in a 
variable and then, I was using it. When I loaded the module and used that 
variable, it explodes! because at that time the new object is created, it 
doesn't belongs to the application context.

*redis.py*
class RedisSomething():
   __redis = StrictRedis(host = app.config['REDIS_SETTINGS']['hostname'])

redis=RedisSomething()


It was my mistake due a bad usage or practice.


Thanks very much for your help and your time, Markus!


El viernes, 18 de julio de 2014 10:09:34 UTC-3, Markus Unterwaditzer 
escribió:
>
> Why not simply do 
>
> __redis = StrictRedis(host=app.config['REDIS_SETTINGS']['hostname']) 
>
> Since your app object is available? 
>
>
> On 18 July 2014 14:49:23 CEST, Marce Romagnoli <[email protected] 
> <javascript:>> wrote: 
> >Thanks for your reply, Markus. 
> >The first g.config = app.config line was something I tested and leave 
> >there 
> >by mistake. 
> > 
> >If I understand, you are saying that I should do something like: 
> > 
> >app = Flask(__name__) 
> >ctx = app.app_context() 
> >ctx.push() 
> > 
> >with ctx: 
> >            __redis = StrictRedis(host = 
> >current_app.config['REDIS_SETTINGS']['hostname']) 
> > 
> >If so, this didn't work for me. Like this, I only could retrieve 
> >default 
> >settings object. 
> > 
> >I have to set configs again like: 
> >app.config.from_object(config[config_name]) 
> >config[config_name].init_app(app) 
> > 
> >That *config_name* var, tells me if config is for Dev or Production, 
> >but is 
> >set at the time the app is run. 
> >Perhaps, I should set that value in an env var, due at this level I 
> >cannot 
> >know what environment was set. 
> > 
> > -- Marce 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> >El jueves, 17 de julio de 2014 21:01:37 UTC-3, Markus Unterwaditzer 
> >escribió: 
> >> 
> >> On Thu, Jul 17, 2014 at 12:27:33PM -0700, Marce Romagnoli wrote: 
> >> >     from api_0_0_1.models.client import db 
> >> >     db.init_app(app) 
> >> > 
> >> >     g.config = app.config 
> >> 
> >> This works only during a request, i.e. not right now. 
> >> 
> >> Not sure why you want that too. The ``g`` object is for data that 
> >needs to 
> >> be 
> >> stored for the lifetime of the request context, but you can access 
> >your 
> >> config 
> >> via ``current_app.config`` anyways at that time. 
> >> 
> >> >     return app 
> >> > 
> >> > 
> >> > if __name__ == '__main__': 
> >> >     app = create_app('development') 
> >> >     app.run() 
> >> > 
> >> > But I cannot read those config values from a module I use, I have 
> >the 
> >> > error: *RuntimeError: working outside of application context. *I am 
> > 
> >> doing: 
> >> > 
> >> > from flask import current_app as app 
> >> > from redis import StrictRedis 
> >> > 
> >> > 
> >> > class RedisSomething(): 
> >> >    __redis = StrictRedis(host = 
> >> app.config['REDIS_SETTINGS']['hostname']) 
> >> > 
> >> > 
> >> > Is there any way to access those same configs set when app is 
> >created? 
> >> 
> >> Same thing here. You'd have to import the app itself instead of using 
> > 
> >> current_app. I recommend you execute all this code inside your app 
> >factory 
> >> or 
> >> after the factory is used. 
> >> 
> >> -- Markus 
> >> 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"pocoo-libs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pocoo-libs.
For more options, visit https://groups.google.com/d/optout.

Reply via email to