Djangoで始めるブログ作成講座

「Djangoで始めるブログ作成講座」は、PythonのWebフレームワークであるDjangoを使って、ブログを作成するシリーズです。
シリーズの目的は、Djangoを使ってWebアプリケーションを作成する方法を学ぶことと、実際に使えるブログを作成することとなっています。

Django初学者の場合は、以下にDjangoTODOアプリを作成するシリーズが適していますので、シリーズを完了させてから取り組んでみてください。
今回のブログシリーズではTODOアプリで学習したことを前提に話を進めています。

関連記事

「DjangoでTODOリストを作ろう!」は、PythonのWebフレームワークであるDjangoを使って、TODOリストを作成するシリーズです。 シリーズの目的は、Djangoを使ってWebアプリケーションを作成する方法を学ぶことと、実[…]

IMG

下記に掲載しているシリーズ記事を読み進めることでDjangoのより踏み込んだ部分を学ぶことができます。
また、実際のWebアプリケーションの開発に必要な技術も身につけることができるでしょう。

開発における諸条件は以下の通りです。

  • OSはWindows
  • 開発環境はDocker-Desktopを想定

もしも開発環境構築がまだの場合は以下の記事を参照して立ち上げてください。
デバッグ手法に関する記事リンクも以下の記事にあるので、導入がまだの場合はぜひ試してみてください。

関連記事

PythonのDjangoでWebアプリケーションを開発したい! という人向けに開発環境構築のやり方を解説します。 前提条件 OSはWindows 使用するのはDocker(ドッカー) CMD(コマンドプロンプト)で[…]

IMG
それぞれの記事に対応したソースコードを格納したGitHubへのリンク

Githubリンク(BLOG)

また各々の記事の最後にもリンクを記載していますので、もし作成に行き詰った場合は参考にしてみてください。

Djangoで始めるブログ作成講座

作成するアプリの全体概要

今回作成するBLOGは以下のような形になります。

通常のブログと同じように記事一覧ページと詳細ページ、またカテゴリー一覧と月別ページがあります。
また、今回はブログの内容を編集するために管理画面もカスタマイズする形となります。

投稿のみならず、コメントも管理できるブログアプリとなっています。
Djangoの踏み込んだ内容を多く扱い、学習できることでしょう。それでは作成していきましょう。

その1:ブログを作ろう!

まずはDjangoでブログの基本的な部分を作成します。
Djangoの便利機能でさっくりと作成してしまい、管理画面についても整えましょう。

内容こそ多いですが、Djangoでも基礎の基礎なので迷いなく作成してしまいたいですね。

下記記事で習得できる技術一覧
  • クラスベースビュー(DetailView)の使い方
  • Djangoアプリ管理画面の実装方法
関連記事

「Djangoで始めるブログ作成講座」の第一回です。 今回は第一歩として、いきなりブログを作成します。 細かい部分の実装は次回以降に回しますが、基本的な部分をさっくりと作り上げていきましょう! この記事を読んで取り組むことで、[…]

IMG

その2:アイキャッチ画像を導入しよう

続いてはDjangoで作成したブログにアイキャッチ画像を導入してみましょう。
この記事を読むことで、どのようにDjangoで画像ファイルを扱うのかを知ることができます。

どこにアップロードするのか、どのように表示するのか、そういった知識はブログのみならずさまざまなWebアプリで役立つことでしょう。

下記記事で習得できる技術一覧
  • DjangoでのImageFieldの使い方
  • Djangoでの画像の表示方法
関連記事

「Djangoで始めるブログ作成講座」の第二回です。 前回はブログの基本的な内容を実装するにとどまりました。 [sitecard subtitle=関連記事 url=https://freemas.stepupkaraoke.com[…]

IMG

その3:コメント投稿機能を導入しよう!

次はブログに必要不可欠なコメント投稿機能を導入します。
当シリーズの中で記述量が多く、知れるDjango知識も多くなっている回です。

コメント機能の作成はもちろん、別モデルとの連携や管理画面のカスタマイズ方法などを扱っています。
難易度はやや高めですが、しっかりと理解していきましょう。

下記記事で習得できる技術一覧
  • DjangoでのModelの結合の仕方
  • 結合先のデータ削除の場合の挙動
  • 同一ViewでのPost時のふるまいの指定
  • commit=Falseでのデータ保存
  • Django管理画面でのinlineの使い方
  • Django管理画面で、データ一覧画面の表示のカスタマイズ
関連記事

「Djangoで始めるブログ作成講座」の第三回です。 前回はDjangoで画像を扱い、ブログのアイキャッチ画像を定義しました。 [sitecard subtitle=関連記事 url=https://freemas.stepupka[…]

IMG

その4:ページング機能を導入しよう!

次は一覧画面におけるページング機能の作成です。
投稿が多くなればなるほど、ページに分けたほうがアクセスもしやすくなりますよね。

前回のコメント投稿機能のボリュームが大きかったので、今回は箸休めとして少なめになっています。
別プログラミング言語では複雑になりやすいページングをDjangoではどれだけ簡単に実装できるのか、必見です。

下記記事で習得できる技術一覧
  • Djangoのクラスベースビューでのページング実装方法
  • Templateへのページングの書き方
  • DjangoにおけるCSSでのページングデザインの調整
  • ページングの表示、非表示の仕方
関連記事

「Djangoで始めるブログ作成講座」の第四回です。 前回はブログにコメント投稿機能を実装し、管理画面のカスタマイズも同時に行いましたね。 [sitecard subtitle=関連記事 url=https://freemas.st[…]

その5:カテゴリー機能を導入しよう!

続いては各記事にカテゴリー機能を導入しましょう。
カテゴリーを導入することで、記事を分かりやすく、そして見つけやすくしてくれます。

この記事はコメント投稿機能と同じくらい記述量が多く、学べる内容も多い回となっています。
とくに事前に初期データを仕込むレシーバー関数の使い方や、クラスベースビューの継承はかなり便利ですので、覚えておきたい知識です。

下記記事で習得できる技術一覧
  • DjangoのModelでのURL作成関数の作り方
  • レシーバー関数について
  • 初期データ登録の仕方
  • Djangoにおけるマイグレーション順序の注意点
  • クラスベースビューの継承の仕方
関連記事

「Djangoで始めるブログ作成講座」の第五回です。 前回はDjangoでページング機能を実装しました。 [sitecard subtitle=関連記事 url=https://freemas.stepupkaraoke.com/p[…]

その6:月別投稿一覧ページを作ろう!

カテゴリ―一覧ページを作成出来たら、似たようなページとして月別投稿一覧ページを作成しましょう。
年度、そして月別に投稿のアーカイブをまとめたページは、ブログでは頻出の機能ですよね。

カテゴリー一覧画面を作れたのならば、月別投稿一覧ページは容易に作れるはずです。
これまでのことをおさらいしつつ、さっくりと作成してしまいましょう。

下記記事で習得できる技術一覧
  • Djangoでの年月URLの作成方法
  • クラスベースビューの継承の仕方
関連記事

「Djangoで始めるブログ作成講座」の第六回です。 前回はDjangoで作成したブログにカテゴリー機能を追加しました。 [sitecard subtitle=関連記事 url=https://freemas.stepupkarao[…]

その7:サイドバーを作ろう!

ブログと言えばサイドバーですよね。
これまで作成してきたカテゴリー一覧や年月別の一覧などを表示して、ブログにアクセスしやすくしていきましょう。

この回では短いものの、共通の処理を関数で切り出すという処理を行います。
Djangoが属するPythonのみならず、さまざまな言語で便利な機能ですので、ぜひとも覚えていきましょう。

下記記事で習得できる技術一覧
  • DjangoでのViewの共通関数の作成方法
  • Viewでの関数の使用方法
関連記事

「Djangoで始めるブログ作成講座」の第七回です。 前回はDjangoで作成したブログに月別投稿一覧ページを追加しました。 [sitecard subtitle=関連記事 url=https://freemas.stepupkar[…]

おわりに

長くなりましたが以上で、Djangoを使ってブログアプリを作成するシリーズは終了です。
TODOリストとは違い、色々と踏み込んで、かつ実践的な内容を扱うことができたと思います。

とはいえTODOリストと同じく、このブログはまだ途中段階です。
もしもまだ思いつくような改良プランがあれば、これまでのシリーズで培った知識を駆使しつつ、ネットで調べるなどしてチャレンジするのが良いでしょう。

あるいは作ってみたいアプリを作成することを通じて、Djangoの知識を深めるのもいいですね。
作成することが学ぶ上での一番の近道だと私は思います。