小村のポートフォリオサイト開発(11) DjangoRestFramework はてなブログの記事のデータ格納(3)

  • こんばんは、小村だよ!

  • 下記のポートフォリオサイトを構築していくよ

  • 前回ひとまずはてなブログ記事をひとまずDBに書き込むことに成功しました

  • 今回はそれを実働レベルに持っていきます!



目次

  1. 管理メニューのタイトル表示を修正
  2. はてな記事全件取得するまで回す



記録

管理メニューのタイトル表示を修正

  • 前回、はてな記事を自前のDBに格納することができました

  • それを管理ページから確認した結果が下記

f:id:kom314_prog:20210821151236p:plain


  • なにがなんだかわからないね!

  • というわけで管理画面表記を変更します

  • admin.pyを下記の通り変更

from django.contrib import admin

from .models import Entry


@admin.register(Entry)
class Entry(admin.ModelAdmin):
    list_display = (
        'entry_id',
        'hatena_entry_id',
        'title',
        'updated_at',
        'edited_at',
    )


  • はてなブログAPIで取得できる項目が、

    • edited:更新日時
    • updated:公開日時
  • という謎な仕様が判明したので合わせてmodelも変更してますが割愛

  • 最終的な管理画面が下記。見やすくなったね!

f:id:kom314_prog:20210821161712p:plain



はてな記事全件取得するまで回す

  • はてな記事API~~/entryにアクセスすると10件分の記事を取得します

  • 次の10件は、下図のnextにあるリンクにより次のページ分が見れます

f:id:kom314_prog:20210821171215p:plain


  • このURLが存在する間、ぐるぐる回るようにコードを修正します。

  • そして間違えて永久に(2分ぐらい)APIを呼び続けてしまった/(^q^)\

  • 垢BANされないか心配だ!

  • そんなわけで、今後に備えて念のためAPIを呼ぶ感覚に0.5秒の感覚を設けました

  • 修正箇所がこちら

f:id:kom314_prog:20210821172530p:plain
f:id:kom314_prog:20210821172559p:plain


  • これにより下記の通り過去投稿した全記事を格納できました!

  • 振られるIDが投稿日時の降順なの気になるな……後日修正しよう

f:id:kom314_prog:20210821172835p:plain



おわりに

  • 記事の取得処理はもう大詰め!

  • とはいえ今のままだとすべての処理をViewsに書いてるから汚い汚い

  • リファクタリングちゃんとしなくちゃね!

  • ではでは今日はこの辺で!ちゃお~~~!