arveltのソフトウェア技術メモ

Arvelt's software technology memo

pythonのflaskで自分用アップローダを作った話

ニンテンドー 3DSありますよね。
あれの新絵心教室っていうゲームで、書いた絵を写真として保存しておけるんです。
その写真を取り出してネットにあげようとおもうと、SDカードを取り出してPCにつなげてコピーしてアップロードしないといけないんですね。
これがめんどくさい。


3DSのブラウザから直接ネットにアップロードして、
PCから同じ場所みてその画像を取得できるようにしたいと思いました。


そこで自分用の3DSのブラウザで使えるアップローダを作りました。



こんな感じ。なお実物は私しか知らない場所にありますのでご了承ください。
https://github.com/arvelt/flask-fileupload-sample


作ってから調べたらやはりすでにあったんですけど全く問題ありません。


はいでは作ってみてわかったことや気になったコトなど書いていきます。


○以下ハイライト
・flaskすごい。pythonsinatraみたいなやつ http://flask.pocoo.org/
・コントローラーとテンプレートをさくっと提供してくれて楽
・os.pathがすごい
3dsブラウザのUserAgentは「Nintendo 3DS
・gitで空のディレクトリを保持したいときは.gitkeep入れるといい
・flask.url_forを使うと欲しいurlはだいたいとれるのでちゃんとドキュメントかソースを読むのがおすすめ
・デプロイはちゃんとわかってないとめんどくさい


○以下参考にした場所とか
http://flask.pocoo.org/docs/quickstart/
公式ドキュメントのクイックスタート。ここ読むとだいたいはわかる。ちゃんとFile Uploadsの項目があってありがたい。


http://memo.yomukaku.net/entries/195
空のディレクトリを保持したいときは空の.getkeepをおいておくらしいという話。


http://zafiel.wingall.com/archives/7513
flaskアプリをapache上にデプロイするときのやり方について。自分でやってみるとこのパスはどう書くんだよってなりがち。



○気になること
・モデル
DBとマッパーはpeewee+SQLiteだと小さく手軽にやれそう。https://pypi.python.org/pypi/peewee


python
python自体をあまりわかってないことに気づいた。文字コード。日付操作。型とか。


pythonエコシステム
python自体以下略。virtualenv、setuptool、pip、pep8とかよくわかってない


・Paas
flaskはかなり手軽なのでなにかさっと書きたいときによさそう。そこでさっと書いたやつをぱっと公開するためにPaasに載せる方法を調べておきたい。