Flaskでsjis対応のページを作成する方法
FlaskでUTF-8以外(例えばsjis)のサイトを作成するための自分メモを以下、羅列
- after_request内でresponse.dataの内容を変換
- response.headers.addでresponse_headerを適切なものに設定
- sys.setdefaultencoding('sjis') でdefaultencodingをsjisに設定
- スクリプト内でdefaultencodingを設定する場合はsysパッケージをreloadすること
- あまり良くない方法みたいだけども(´・ω・`)
- flaskファイル、templateともにutf-8でOK
例えばこんなふう?サンプル
@app.after_request def convert_sjis(response): reload(sys) sys.setdefaultencoding('sjis') response.headers.add('Content-Type', 'text/html; charset=shift_jis') response.data = response.data.decode('utf8').encode('sjis') return response
これで携帯サイトをFlaskで作れるようになった(`・ω・´)
参考:ぎじゅっやさん