競プロは役に立たない!を確かめる webアプリ編-2
前回に引き続き、Django で簡単なwebアプリを作成しながら、競プロは役に立たない!を確かめます。
前回までの進捗
・Django girls Tutorial(日本語版)(以下girls)
に従い、最低限のCURD(レコード作成、取得、更新、削除)機能を持たせたアプリ?を作成後、Python anywhere上にデプロイ。
下記のものがネット上から閲覧可能になりました。
この時点では、競プロのスキルはwebアプリ作成にはオーバースペック。
そして、次回の課題として、
・画像ファイルのアップロードを可能にしたい
・BootStrapを使って全体的にかっこよくしたい
・ログイン機能をつけたい
・データ作成、更新日時、作成者、更新者を表示させたい
を挙げていました。
そして今回は、画像ファイルのアップロードとデータ作成日時の表示にチャレンジしました。
〇画像ファイルのアップロード
ググってみると、
Pillowというライブラリをインストールする必要あり(Pillowが何をするものかは
知りませんが、きっと画像表示するためのものか何かでしょう。違ったらごめんな
さい。)
ImageFieldを使い、画像保管場所を作成、登録して、管理画面から入れば・・
簡単に実装できますね。
では、管理画面以外から入れることも確認・・
・・
・・
find.htmlから100.jpgを取得したかったのですが、なかなか難しい。
どこで設定したのかわかりませんが、
勝手に/shohinの中からファイルを探そうとする・・
一旦中断して、時間のある時に再チャレンジしましょう。
〇登録日時の取得
こちらもググってみると
DateTimeFieldを使って、時刻を東京時間に合わせて・・
これは手元のローカル環境ではすぐにうまくいきました。
むしろ時間がかかったのは、変更できるようにするかしないか。また、時刻まで表示するかしないか。を決める段階でした。
結局変更は可能、表示は日まで(時刻は内部的には登録されているが表示しない)に決定してmigrate。
git からgithubへgithubからpythonanywhereへ、pythonanywhere上でmigrate!
??何度やってもエラーがでます。
頭にきたので、ローカル環境でmigrate済のデータベース(sqlite3)をアップロード!
通りました!ACです。たぶん嘘解法に近い方法でしょうけど。
想定解は今後調べるとして、今回はここまで。
肝心の競プロは役に立つかですが、一旦競プロと競プロerを分けて考えます。
まず、webアプリ作成も必ず、「マニュアルが無い、あってもその通りにはできない」にぶち当たると思います。
競プロerは、そんな場面で、方法を考える・調べるのどちらが最適か?考えるなら何から?調べるなら何を?を超速で判断し、実行するのが得意でしょう。(コンテスト中はいつもそんな感じですから)
また、競プロerは放っておいても勝手に勉強します。
今回も「競プロ」が役に立つ場面はありませんでした。(使った最も難易度の高いアルゴリズムは恐らくfor文)しかし、「競プロer」ならとても役に立つのではないかと思います。
そして、「競プロ」は「競プロer」を効率よく探すツールなので、結局「競プロ」は役に立つのではないでしょうか?
次回は
・画像ファイルのアップロードを可能にしたい(引き続き)
・BootStrapを使って全体的にかっこよくしたい(引き続き)
・ログイン機能をつけたい(引き続き)
・データ作成、更新日時(済)、作成者、更新者を表示させたい
(これはログイン機能が先では?)
・SQLを使ったちょっと上等な検索(NEW!)
のどれかが達成できた段階でブログを更新します。