2015 年 12 月の記事一覧です(3 件)

Frozen-Flask で build 後にHTTPサーバを実行させる

Frozen-Flaskで静的ファイルの生成を実施する場合、このようなスクリプトファイルを作って実行します

# freeze.py
from flask_frozen import Freezer
from app import app

freezer = Freezer(app)

if __name__ == '__main__':
    freezer.freeze()
実行するとbuildというフォルダが作成され、静的ファイル群はその中に生成されます。本番サーバにデプロイする場合は、build内のファイル郡をドキュメントルート等にアップロードします。
デプロイする前に生成された静的ファイルを確認する場合、今までは

$ cd build
$ python -m http.server
などとしていたのですが、freezer.run() を使えば、ビルド後にHTTPサーバ(実態はwerkzeugだと思う)が起動されることがドキュメントに書いてありました。

Frozen-Flask — Frozen-Flask 0.12 documentation

なので今は、引数なしfreeze.pyでビルド、 引数run付きで ビルド後にHTTPサーバ起動というようにしています。

import sys
from flask_frozen import Freezer
from app import app

freezer = Freezer(app)

if __name__ == '__main__':
    if len(sys.argv) > 1 and sys.argv[1] == "run":
        freezer.run(debug=True)
    else:
        freezer.freeze()

CMSやブログ的にFlaskを使っているならば、Frozen-Flaskはオススメです。また、静的サイトジェネレーター的に使う場合は下記サイトが参考になります。

Dead easy yet powerful static website generator with Flask | Code | Nicolas Perriault

[CSS] Bootstrap Theme を Bootswatch Flatly から Umi に変えた

日本語表示が凄く綺麗なBootstrap Themeがあったので使ってみました。
Umi - 日本語も美しく表示できるBootstrapテーマ

元々はHonokaというThemeがあり、UmiはHonokaをフォークしてBootswatch Flatlyの配色を施したようです。このブログもBootswatch Flatlyをベースにカスタマイズしていたので、Umiを使っても配色に大きな変化は無いのですが、日本語の表示が綺麗になっています。

あとFont Awesomeのアイコン類も使いすぎな感もあったので、結構減らしました。
しばらくこれでやってみます。


IPython の起動時に特定の処理を走らせる際の例外処理

少し前にこのようなエントリーを書きました。
[IPython] PuDB を IPython のマジックコマンドで使う | aoshiman.org

IPython の起動時に特定の処理を走らせる(上記エントリーでは、import pudb.ipython)には、ipython_config.py の c.InteractiveShellApp.exec_lines に処理を書いていくのですが、その処理がimport文の場合、そのPython環境にimportするモジュールがなければ、当然ImportErrorが発生します((注)importがコケるだけでIPythonそのものは正常に起動します)。

PuDBが不要であったり、IPython環境によっては特定の処理を走らせる必要ない場合もあるので、その場合は

# lines of code to run at IPython startup.
c.InteractiveShellApp.exec_lines = [
"try:import pudb.ipython\nexcept ImportError:pass"
]
のようにtry文を含める形でワンライナーライクに記述すれば、importエラーはpassされるのでエラー表示でドキッとすることもなくなります。
なんか無理矢理っぽい回避策ですが、これでうまくいっているので良しとします。


PAGE TOP