¿Cómo importar desde el archivo de configuración en el matraz?

He seguido el diseño de mi proyecto Flask desde http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world .

Tengo la siguiente estructura:

app/ __init__.py views.py forms.py myFile.py run.py config.py 

En views.py, forms.py puedo usar

 from config import basedir 

Sin embargo no puedo usar eso en miArchivo.py

yo añadí

 import Flask 

y cuando lo modifico, el servidor web de Flask se reinicia, pero no dice que se hayan encontrado cambios en la aplicación / myFile.py, al reiniciarlo solo se reinicia.

¿Qué necesito hacer para poder usar?

 from config import basedir 

en mi archivo de python. No veo que se haga nada especial en __init__.py para forms.py.

EDITAR: Este es mi archivo __init__.py :

 from flask import Flask from config import basedir app = Flask(__name__) app.config.from_object('config') from app import views 

Cuando la gente habla de configuraciones en Flask, generalmente hablan de cargar valores en la configuración de la aplicación. En su ejemplo anterior, podría tener algo como app.config.from_object('config') en su archivo init.py Luego, todos los valores de configuración se cargarán en el diccionario app.config .

Luego, en cualquiera de sus archivos, simplemente puede importar el objeto de la aplicación para obtener acceso a ese diccionario. Tiendo a acceder a ese objeto de la app from flask import current_app as app luego simplemente app.config['MY_SETTING'] para obtener el valor que me importa. Leer más en la documentación .

Después de un poco de manipulación (y un poco de ayuda de la red), pude mejorar esto aún más, cambiando el código para incluir la configuración a:

 app.config.from_object('config.ProductionConfig') 

Esto permite este patrón fresco para las configuraciones:

 class Config(object): DEBUG = True DEVELOPMENT = True SECRET_KEY = 'do-i-really-need-this' FLASK_HTPASSWD_PATH = '/secret/.htpasswd' FLASK_SECRET = SECRET_KEY DB_HOST = 'database' # a docker link class ProductionConfig(Config): DEVELOPMENT = False DEBUG = False DB_HOST = 'my.production.database' # not a docker link 

Lo que queda ahora es ver cómo integrar configuraciones de prueba en esto, pero al menos se siente menos torpe.