Qiita 記事でランキング・サイトを構築する(20)

今日は7時半起き。

 

Qiita 記事でランキング・サイトを構築する(20)

 

1.Qiia 記事を使ったランキング・サイトを企画する

(1)下記の記事でパクったサイトを作る。

qiita.com

(2)Qiita API の制限で 1時間当 1000件までしか記事を取得できない

(3)どんなデータが取得できるかがわからない

  Qiita 記事で API で記事取得している Python コードで試してみる。

  → 記事本文を取得しているサンプルが無い。

  → 本文を取得しているサンプルはあったが、 colab 上では動かない。

  → Qiita API のドキュメントを熟読するが、いまいちわからん。

 

2.Qiia API を使って記事を取得してみる

(1)現状のコードの使い方では、 API 仕様を理解していないようだ。

(2)Qiita API で、まずは、記事の取得をして API の仕様を理解する。

 

3.パクリサイトなので、まずは、丸パクリをしてみる。

(1)本の LGMT から定量評価をしている。記事の量が多すぎる。

(2)Qiita の記事が多岐に渡っているので、技術以外の記事も調べてみる。

(3)Qiita の記事を 2013年9月(Qiitaの開始年)から記事を抽出をした。

  →本のリンクをうまく取り出せない。Pythonの正規表現でurl抽出?が必要。

(4)Python を使って URL を抽出するサンプル・コードを見つけた。

  Qiit API のスクレイピング結果を使って HTML から URL を抽出できた。

  → いろんなキーワードでググった結果。

 

4.Django で Qiita Book Ranking を表示する MTV を作成する

(1)Udemy の EC サイトの動画を見ながら、 Book Rnking アプリを作成する

  → アプリを作成しようとするとエラーが出まくった。修正漏れ?

(2)Udemy Django コースの最後の課題 EC site を読み替えて Qiita Book 表示に

  修正していく。

  → データベースは、作成した。

  → 管理者権限で、データベースにデータ入力した。ランキングが落ちる?

  → 書籍DB( Books )を一覧表示画面を作成。実行するとリンクエラー?

(3)昨日のDBエラーと一覧表示できるようになる。著者とタイトルで検索

  → DB:points のDB設定で int を str で扱っていた為エラー。str 変更で解決。

  → 一覧表示の HTML でリンク先の名前が間違っていた。

(4)一覧表示から詳細画面を表示でリンク・エラーと画面遷移エラー?

(5)リンク・エラーの原因は、 's' が漏れていたせい。リンク名修正したらOK。

(6)ブック・ランキング・サイトなので、ランキングをまず表示するべきと

  気づいた。ランキングの一覧表示を作成する。

 

5.Django で Qiita Book Ranking を表示する MTV を作成する(再)

(1)DBの設計を間違えたので作り直す。本とポイントを別DBにしたのは、

  失敗。DB設計をちゃんとしてプログラミングをする。

(2)パクリ先のサイト(テック・ブック・ランク)を HTML 表示して

  よく観察して、 ER図をキチンと書く(Draw.io)。

  熟慮の末、4エンティティのまとめることにした。

(3)Udemy Django 講座のログイン・ログアウト処理を実装する。

 

6.Django で Qiita Book Ranking を表示する MTV を作成する

(1)ログイン・ログアウト処理を Qiita Book Ranking 用に書き換える。

(2)Model として Books Publishers Pictures を作成し、データ入力する。

(3)入力されたブック情報を一覧する画面を作成し表示する。

 → CSS で表示を整えないと見にくい画面となった。

 

7.Django App を Heroku にデプロイする

(1)Qiita の Django の Heroku へのデプロイ記事でデプロイをしたが失敗。

(2)Heroku へのデプロイは、 Heroku 上でアプリを実行するプロセスの一つ。

(3)Heroku のサイトに詳細な説明(但し、英語)があったので、 DeepL で

  日本語翻訳しながら読む。チュートリアルがあるので一度やってみる。

(4)英語版チュートリアルは、成功した。最新情報は英語版を見ること。

 

8.Django App を Heroku にデプロイ(再)&実行

(1)エラー・ログと原因の関係がわからん。静的??

(2)Heroku のアーキテクチャーをじっくり読んで理解する?

(3)Udemy が夏のセールをしていて Heroku + Django のコース(英語)があった。

  → 全体の流れを一度、勉強してから再度、挑戦する。

 

9.「現場で使える Django の教科書《基礎編》 」で理解度を確認する

(1)Udemy で説明不足な点が理解できた。

(2)setting.py を使って、本番環境とテスト環境を切り替える方法が使える。

 

10.「現場で使える Django の教科書《実践編》 」で DigitalOcean へデプロイ

(1)サンプル・アプリを Unix サーバーへデプロイする。

  → サーバーの契約・暗号鍵・ユーザー登録・・・・ 時間がかかる

(2)Nginx インストールではまる。ぐぐるとよくはまるらしい。

  → アンインストールしてやり直し