Um dos problemas com a abordagem de realizar uma importação no blueprint, como sugerido por Emanuel Ey, é que isso causa uma importação circular. Depois de muito jogar, acontece que a única maneira (que consegui encontrar) foi criar um arquivo separado chamado
database.py
que se conecta ao banco de dados e então posso importar essa conexão por blueprint da seguinte forma:child.py
from database import mongo
courses = Blueprint('courses', __name__)
e meu
database.py
from flask.ext.pymongo import PyMongo
mongo = PyMongo()
e o aplicativo, login.py, mas tem que inicializar o banco de dados
from database import mongo
app = Flask(__name__)
app.config.from_object('config')
mongo.init_app(app) # initialize here!
from child import child
from child import2 child2
app.register_blueprint(child.child)
app.register_blueprint(child2.child2)