( およそ )2 週間で初めての
Web アプリを作ってみた話
2017.04.12 みんなの Python 勉強会 #23
こんばんは
@NaoY_py です . SE やってます (2 年目 )
Python3 エンジニア認定基礎試験に受かりました .
Twitter : @NaoY_py
Qiita : Nao-Y
GitHub : NaoY-2501
今回やったこと
● 初めて Web アプリを作ってみた
● connpass API を使った IT 勉強会検索サイトです
● その名も co[m|nn]pass
● キーワード
○ Web フレームワーク
○ Heroku
きっかけ とか
● 前回の阿久津さんの発表に影響されました
○ 動いて触れるもの作りたい
● Web フレームワークって色々ありますね
○ Django, Flask, bottle, Tornado...
● 選ばれたのは ...
フルスタックって響きが強そうだったので ...
フルスタック Web フレームワーク
DjangoDjango
とりあえず
● Django Girls Tutorial をやった
○ すごーい!!
○ ブログを題材に教えてくれるフレンズチュートリアル
○ 解説がほんとに初心者向けで実際わかりやすい
○ おすすめです
開発開始 (3/26~)
● 設計図
○ すごく…雑です…
○ このときは 4 列表示
開発開始から約一週間
● 検索して表示する機能は実装完了
● しかしここから 3 日ほど , ページング処理に苦しむ
○ 検索結果 ( 辞書 ) のまま画面に渡したい ...
○ が……駄目っ……!
○ 検索結果モデルのリストを画面に渡すことで解決
あとは heroku ってやつに
デプロイすればいいんだろ?
そんなふうに考えていた時期が
俺にもありました……
デプロイ後の激闘
● セッションの概念をすっかり忘れていました
○ 同時アクセスすると検索結果が混ざる
○ セッションキーをキーにして結果を格納して解決!
■ 気付くまで 2 日くらい掛かりました
■ 公式ドキュメントはちゃんと読もう
激闘続く
● 2 ページ目以降に遷移するとエラー吐く
○ heroku 上ではセッションの情報を保持できない… ?
○ Memcached Cloud(heroku addons) を導入
○ 解決!!
もうゴールしていいよね
● 検索条件を変えても反映されない…
○ 検索アプリにあるまじき障害
● フォームの中身が変わる毎にセッションキーを再生成
● 解決!!
ゴール!! (http://comnnpass.herokuapp.com/)
これからの課題
● ページングに途中省略の処理を入れる
● views.py でバリデーションをやってるので改善
● ウィンドウのサイズによってレイアウトが…
○ bootstrap の仕組みを把握しよう
● コードのコメント , GitHub のコミットコメントの整備
○ 他の人が読むことを意識しよう
まとめ
● Django Girls Tutorial ほんとおすすめ
● 初心者でも Web アプリ作れるようになりました
● 公式ドキュメントはちゃんと読もう
○ 和訳版は 1.4 なので , 原語版をなるべく読む
● Web アプリなので同時アクセスも考慮する ( 自戒 )

stapy#23 LT