Flask Python3 で 戸田市 tocoちゃんバスあと何分? Webアプリ作成♪
Flask(フラスク) とは
Flask Official Site を参照すると冒頭に以下の文章があります。
1 | Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions |
Flask は Python の小規模なフレームワークで、 Werkzug や Jinja 2 をベースとしています。
- Made by Armin Ronacher (Australian)
- Bottle(ボトル)に対する言葉遊びで命名。(Flask: フラスコ)
- 2010 年のエイプリルフールのジョークが始まり
- 2017 年大注目の Python!WEB フレームワーク 3 つを徹底比較 を見ると次第に人気が高まっている(給与も良さそう?)
何がいいの?
最小限の構成で簡単な Web アプリケーションが作成できることです。
django, Rails でも簡単に出来なくもないですが、さらに手順は短く容易です。
チュートリアル
1 | from flask import Flask |
Flask を利用する判断基準
- 大規模なプロジェクトでない。(ファイル構成は自分 or チームで決定する必要がある為)
- DB を使わない。使うにしても複雑な DB 設計でない。
- 利用するライブラリが Python 製でその gateway として利用したい。
手始めに!
初心者向け記事は多数あるので割愛し
学習がてら Web アプリケーション作ったのでそちらをどうぞ ♪
実際動くものとそのソースを見た方がイメージ湧くと思います。
戸田市のローカルバス toco ちゃんバスの停留所を指定しあと何分で来るかをカウントダウンするアプリです。
自分が使うので作ったら割と広まってきて嬉しい限り ♪
1 | ※ちなみに戸田市役所に確認し非公式ではありますが公開許可をいただいております。 |
ソースはこちら ♪
ソースを参照頂けるとやってみたことがわかりやすいと思います。
やってみたこと
- docker で flask ローカル開発環境作成
- config ファイルからデータ呼び出し (config.py)
- session 機能
- Bootstrap 適用
- superagent.js で非同期通信
- flickity.js でフリッカブルに
本番動作環境
- さくら VPS CentOS 6
- httpd2.4 + wsgi + virtualenv + python3
さくら VPS には CakePHP や SpringBoot のプロジェクトが乗っかっていたりとやりたい放題の環境として所持しています。
開発期間
ほぼほぼ 1 週間。仕事の昼休みと日曜大工で 10 時間足らずで公開出来ました。
どちらかというと js 側の学習コストが掛かった感じ。
総評
今回作成したユーザ情報を管理しない、
DB を持たないアプリにはうってつけでした。
構成が複雑になりすぎず丁度良かったです。
やはり大きな規模のプロジェクトには django が適しています。
個人的に戸田市役所に電話して Web アプリ公開の許可を頂く、
という承認申請が出来、地域貢献できる喜びが非常に大きかったです。
今後、バージョンアップしたいと思います。
Flask 利用に際して参考になれば何よりです。
以上です。
Flask Python3 で 戸田市 tocoちゃんバスあと何分? Webアプリ作成♪