競プロ弱者の解答

競プロ弱者の成長記録

競プロは役に立たない!を確かめる webアプリ編-2

 前回に引き続き、Django で簡単なwebアプリを作成しながら、競プロは役に立たない!を確かめます。

 

 前回までの進捗

 ・Python Django 超入門(以下超入門)

 ・Django girls Tutorial(日本語版)(以下girls)

 に従い、最低限のCURD(レコード作成、取得、更新、削除)機能を持たせたアプリ?を作成後、Python anywhere上にデプロイ。

 下記のものがネット上から閲覧可能になりました。

f:id:syunsuk1024:20191008225929p:plain

 この時点では、競プロのスキルはwebアプリ作成にはオーバースペック。

 そして、次回の課題として、

 ・画像ファイルのアップロードを可能にしたい

 ・BootStrapを使って全体的にかっこよくしたい

 ・ログイン機能をつけたい

 ・データ作成、更新日時、作成者、更新者を表示させたい

 を挙げていました。

 

 そして今回は、画像ファイルのアップロードとデータ作成日時の表示にチャレンジしました。

 

 〇画像ファイルのアップロード

  ググってみると、

  Pillowというライブラリをインストールする必要あり(Pillowが何をするものかは

  知りませんが、きっと画像表示するためのものか何かでしょう。違ったらごめんな

  さい。)

  ImageFieldを使い、画像保管場所を作成、登録して、管理画面から入れば・・

  簡単に実装できますね。

  では、管理画面以外から入れることも確認・・

  ・・

  ・・

  

f:id:syunsuk1024:20191013202740j:plain

  find.htmlから100.jpgを取得したかったのですが、なかなか難しい。

  どこで設定したのかわかりませんが、

  勝手に/shohinの中からファイルを探そうとする・・

  一旦中断して、時間のある時に再チャレンジしましょう。

 

 〇登録日時の取得

  こちらもググってみると

  DateTimeFieldを使って、時刻を東京時間に合わせて・・

  これは手元のローカル環境ではすぐにうまくいきました。

  

  むしろ時間がかかったのは、変更できるようにするかしないか。また、時刻まで表示するかしないか。を決める段階でした。

  結局変更は可能、表示は日まで(時刻は内部的には登録されているが表示しない)に決定してmigrate。  

f:id:syunsuk1024:20191013203836p:plain

  git からgithubgithubからpythonanywhereへ、pythonanywhere上でmigrate!

  ??何度やってもエラーがでます。

  頭にきたので、ローカル環境でmigrate済のデータベース(sqlite3)をアップロード!

  通りました!ACです。たぶん嘘解法に近い方法でしょうけど。

  想定解は今後調べるとして、今回はここまで。

 

  肝心の競プロは役に立つかですが、一旦競プロと競プロerを分けて考えます。

  まず、webアプリ作成も必ず、「マニュアルが無い、あってもその通りにはできない」にぶち当たると思います。

  競プロerは、そんな場面で、方法を考える・調べるのどちらが最適か?考えるなら何から?調べるなら何を?を超速で判断し、実行するのが得意でしょう。(コンテスト中はいつもそんな感じですから)

  また、競プロerは放っておいても勝手に勉強します。

  今回も「競プロ」が役に立つ場面はありませんでした。(使った最も難易度の高いアルゴリズムは恐らくfor文)しかし、「競プロer」ならとても役に立つのではないかと思います。

  そして、「競プロ」は「競プロer」を効率よく探すツールなので、結局「競プロ」は役に立つのではないでしょうか?

 

  次回は  

  ・画像ファイルのアップロードを可能にしたい(引き続き)

  ・BootStrapを使って全体的にかっこよくしたい(引き続き)

  ・ログイン機能をつけたい(引き続き)

  データ作成、更新日時(済)、作成者、更新者を表示させたい

   (これはログイン機能が先では?)

  ・SQLを使ったちょっと上等な検索(NEW!)

  のどれかが達成できた段階でブログを更新します。