2011-08-24
■[Python] Flask の Blueprint で app オブジェクトが欲しくなったら
Flask でモジュール機構を実現するには Blueprint を使うが、こいつが Flask のインスタンスを持っていない。
# -*- coding: utf-8 -*- # manage.py from flask import Flask from views.admin import app as admin app = Flask(__name__) app.register_blueprint(admin) app.config['foo'] = 'bar' app.run()
# -*- coding: utf-8 -*- # views/admin.py from flask import Blueprint app = Blueprint('admin', __name__, url_prefix='/admin') @app.route('/', methods=['GET'], strict_slashes=False) def index(): """ GET /admin/index/. """ app.config['foo'] return 'GET /admin/index'
上の manage.py で設定した app.config の値を取りたいけど、Blueprint には app を取れない。
そのままじゃ取れないので、flask.current_app を使う。
# -*- coding: utf-8 -*- # views/admin.py from flask import Blueprint, current_app app = Blueprint('admin', __name__, url_prefix='/admin/') @app.route('/', methods=['GET'], strict_slashes=False) def index(): """ GET /admin/index/. """ current_app.config['foo'] return 'GET /admin/index'
Blueprints 自体が持っていてくれたらと思うけど…。
参考文献
flask.current_app.loggerを使うといいよ! RT @heavenshell: なんで、Flask の Blueprints は app.logger にアクセス出来ない仕様なんかな。
トラックバック - http://d.hatena.ne.jp/heavenshell/20110824/1314190929
リンク元
- 27 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/heavenshell/20100708/1278600441&rct=j&q=python Error: Target org.macports.activate returned: Image error:&ei=AgtVTtKeEIzRmAXB66ED&usg=AF
- 13 http://pipes.yahoo.com/pipes/pipe.info?_id=tDfBdGWF3RGl9XNm1L3fcQ
- 11 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http://d.hatena.ne.jp/heavenshell/20090219/1235057228&rct=j&q=python3.0 print&ei=mQBXTqC-NKzImAXDxPCIDA&usg=AFQjCNHRzZSRy7w6F1P0cbfNwXtE-VD3FQ
- 9 http://www.google.co.jp/url?sa=t&source=web&cd=2&ved=0CCAQFjAB&url=http://d.hatena.ne.jp/heavenshell/20080429/1209480357&rct=j&q=php 配列 後ろから&ei=VxxVTrPmI8j2mAXwks0B&usg=AFQjCNHkDMII_6rH
- 6 http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=php+配列+最初
- 5 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=php+配列 最後の要素を得る
- 5 http://www.google.co.jp/url?sa=t&source=web&cd=1&sqi=2&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/heavenshell/20100528/1275023999&rct=j&q=(utf8_general_ci,IMPLICIT)&ei=GJpVTuvaCo6KmQWx0bH_Dw&usg=AFQjCNFQNYOutAcx9hV6Coh5-VzWZTJeAA
- 5 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBsQFjAA&url=http://d.hatena.ne.jp/heavenshell/20080429/1209480357&rct=j&q=php 配列 最後&ei=ryZWTo-9D47qmAWW_PHBDA&usg=AFQjCNHkDMII_6rH6porHWzKbK6dMYiR
- 4 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=pyramid+python
- 4 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADRA_jaJP410JP410&q=mysql+一時テーブルを作成するストアド
