pythonとflask触ってみた
ふと、pythonを触ろうと思ってなんとなく触ってた。
殴り書き程度のメモでしかないが…。
できたもの
- Github:okbm/flask_json
- pythonのフレームワークであるFlaskを使って、シンプルなjsonを返したりするだけのもの
- GithubのREADMEにも書いてるけど、httpbin(1): HTTP Client Testing Serviceを模倣したものをさくっと作ってみました
- python3.4 + MySQL5.5
- AWS(EC2) + uWSGI + Nginx で動かした(インスタンスはもう止めてるけど)
以下、殴り書き
とりあえず環境構築
- macにpyenvでpython3いれる
- IDEにJetBrainsのPyCharm入れてみたけど、結局vimで書いてた
- pythonよくわからんので、ドキュメント読んだりする
flask
- マイクロフレームワークって説明されてるだけあって、小さいフレームワークだと思う
- ただ、明確にこのファイルにはこうしようみたいなことがなかったので、どこに何を置いたらいいのかが不明。
- ORマッパーにSQLAlchemy使ってみたけど、学習コスト高そうなイメージ。
makeファイル置いて、
make test
でテスト走らせるのは作ったけど、いかんせん中身がねぇ- 時間できたらテストの中身書く予定。。。
- jenkinsとかその辺でテスト走らせるためにコマンドを用意しただけ
flaskもドキュメント読んだりした
vagrant
- flaskを動かすだけならmac単体でもコマンドラインから動かせるけど、uWSGI + Nginxで動かしたかったので、vagrant上でも動かして見ようと思ってfabricを使ってセットアップ。
- Github:okbm/python-wsgi-vagrant
- nginxのファイルとかはこっちのリポジトリで管理するべきだと思うけど、なぜか元のリポジトリに入れちゃった…。
デプロイ
- Github:visionmedia/deploy
- めちゃくちゃシンプルですぐ動いたが、sourceとかフォルダ構成が勝手についてくるのちょいうざいな…。まぁ仕方ない
- uwsgiとnginxをfablicでデプロイ
- これでもよかったがちょっとオーバースペックだったので見送り
- 普通はどんな感じでデプロイするんすかね??git pullしてrsync的な感じなのかcapistranoみたいなの使ったりするのかな…。
AWSについて
- 起動してみると全くsshが繋がらない。
ssh -vv
とかやってもよくわからない。 - Amazon LinuxからUbuntuに変えてみると速攻繋がったのでUbuntuでやった
- なぜ繋がらなかったのかはよくわからん。
- Amazon EC2 のインスタンスを Amazon VPC で起動してSSH接続する - tnil's memo
- 多分これが一番わかりやすい。
- EC2のセットアップも1からやるのはめんどいので、vagrant使ったときに使ったfabricを再利用。
- あとはES2上でuWSGIを起動してブラウザで叩くだけでページが表示されることを確認。
- uWSGIを自動で起動とかその辺は全然やってないし、DNSとか何も触ってないのでデフォルトのまま
まとめ?
- まだまだpythonよくわからない部分が多いけど、とりあえず動いたって感じ。
- なんか作るかなー
- PyConには今年行きます。