【Django】チュートリアル|日報アプリの開発から公開まで

Django

✔このような方へ向けて書かれた記事となります

「DjangoでWebアプリ開発にチャレンジしてみたい!」

「Djangoの情報が英語ばかり、日本語で充実したチュートリアルで独学したい!」

「アプリ開発だけでなく、Web上に公開するまでの情報を探している」

✔当記事を通じてお伝えすること

  • Djangoの始め方
  • Djangoで簡易的な日報アプリの作り方
  • 作成したアプリをネット上に公開する一から十まで

当チュートリアルの特長は、Djangoフレームワークのチュートリアルに留まらず、Web上に公開するまで全ての情報を無料で公開しています。

次章より上から順を追っていくと、簡単な日報アプリが完成し、最後にはWebで公開することができるようになります。

【著者プロフィール】

profile_icon
【Python歴】11年 x 【Django歴】10年
HP作成、社内システムの構築、コンサルティング

当ブログを通じて、Webアプリの書き方やアプリの公開方法までを解説しています。

☆日報アプリ「D-Repo」(デモ版)→こちら

※Djangoをベースに作成したアプリです。

☆便利ツールアプリ「Tool Station」→こちら

※Django REST frameworkとReactで作成しているアプリです。

✔プログラミング学習を始めたばかりの方へ

こちらのチュートリアルを進めるには、最低限のHTML、CSS、Pythonの知識などが必要です。

以下のDjangoでアプリ公開するまでの完全ガイドをご覧ください。

✔YouTube始めました

始めたばかりですが、できれば毎日更新を目指してチュートリアルをアップしていきます!

そのほかにもご要望があれば、何でも解説していきます。

当ブログの問い合わせフォームはもちろん、動画のコメント欄にご連絡ください!

よろしければチャンネル登録お願いします!

【第1章】日報アプリ開発を始めよう!

こちらの章では、Djangoプロジェクトの立ち上げから最初のデータベース操作について解説しています。

  • Djangoプロジェクトの立ち上げ
  • 日報を保存していく箱(モデルクラス)の作成
  • 日報データを保存する
【1-0】virtualenvでDjangoの開発環境を整える 5ステップ
【1-1】Djangoのインストールからブラウザで表示する 5ステップ
【1-2】Django settingsで必ず最初に行う変更点 3つ
【1-3】startappと失敗しないための設定変更を解説
【1-4】日報モデルクラス〜アプリとデータベースを紐づける
日報アプリを作成するにあたり、最初のモデルを作りましょう!
【1-5】スーパーユーザーの登録とAdminページへアクセス
DjangoアプリのAdminページからデータベースを操作しよう
【1-6】Django 管理サイトでデータを操作|構成と使用方法を徹底解説
【1-7】__str__メソッドとは?使い方の徹底解説|実例コード付

【第2章】HTMLファイルとPythonファイルを連動させる

こちらの章では、一般向けユーザーのページを作る方法を解説していきます。

  • HTMLページを表示する方法
  • Pyrthonファイル→ブラウザへ値を渡す方法
  • HTMLフォーム→Pythonファイルへ値を送信する方法
frame-img
【2-1】超カンタン!HTMLファイルを表示する方法を解説
passing values
【2-2】views.py から HTML(テンプレート)へ 値を渡す
【2-3】URLのクエリパラメータを取得する方法
【2-4】base.htmlを作成して繰り返しの記述を避ける
get value from form
【2-5】formの値を受け取る方法をたったの1行で解説
naming page and link
【2-6】リンク先(href)はページ名にしよう!

【第3章】データベースの情報をブラウザへ表示しよう!

こちらの章では、いよいよDjangoフレームワークの最大の特長「データベースとブラウザの連携」について見ていきます。

日報アプリの機能を徐々に作っていきます。

  • データベースからデータを取得(Retrieve)
  • データベースへデータの保存(Create)
  • データベース内のデータを編集(Update)
  • データベース内のデータを消去(Delete)
データをリストで表示
【3-1】データベース内のデータをブラウザで表示しよう!
【3-2】ブラウザ/フォームから値を受けとり、データベースへ新規に保存する方法
フォームクラスを使ってフォームを表示しよう!
【3-3】Formクラスを使ったフォームの表示方法とデータの受け取り方を徹底的に解説します!
【3-4】フォームをtextareaへ変更、placeholder、labelの設定方法【widgetの基本】
【3-5】アップデートビュー|データベースの値を初期値とする方法と上書き保存
Djangoテンプレート if文 条件分岐の書き方
【3-6】HTMLテンプレートでif文!?if文 ifタグの書き方をわかりやすく解説!
【3-7】404ページを設定しよう!
【3-8】既存データを削除するページを作成する方法【deleteメソッド】
【3-9】超カンタン!指定のページへリダイレクト「redirect」メソッドの使い方を解説
【3-10】テストプログラムでエラーチェックをしよう!

【第4章】Bootstrapを使ってページの見た目を整えよう

簡単にCSSが適用できる「Bootsrap」を使って見た目を整えていきます。

Djangoの仕組みだけマスターしたい方は飛ばしても問題ありません。

【4-1】超カンタン!Bootstrapの基本とナビゲーションバーを作る方法を解説!
DjangoアプリでCSSファイルを読み込む方法
【4-2】外部CSSファイルを読み込む方法【フッターを作る|実例付】
【4-3】HTMLを分割「include」タグを使ってスッキリ見やすくする方法
【4-4】たったの10分で一から背景透過のロゴができる
【4-5】画像を表示する方法
【4-6】リストビューとディテールビュー|Bootstrap カードの適用
laptop-img
【4-7】複数のフォームでクラスを一気に追加する方法|forms.py __init__メソッドの使い方
【4-8】モーダルを使ってかっこいい削除機能を実装しよう!【Bootstrap】

【第5章】クラスベースビューってなに?

こちらの章では、一般ユーザー向けのページをよりPythonらしく「DRY」にしていきます。

  • CRUDの機能をクラスベースビューで実装する方法を解説
ListView Basics
【5-1】超カンタン!3行でリストビューが完成!?クラスベースビュー「ListView」の基本を解説します
DetailView
【5-2】 単純明快!クラスベースビュー「DetailView」の書き方・基本を徹底解説!
【5-3】クラスベースビュー「FormView」の基本~表示方法、データの受取から保存までを徹底解説!
【5-4】ページ名からURLを取得する「reverse」「reverse_lazy」違い、使い方を丁寧に解説!
【5-5】ModelFormクラスであっという間にできるCreateViewとUpdateView
【5-6】モデルフィールド「TextField」とモデルフィールド名を指定する「verbose_name」について
DeleteView
【5-7】超カンタン!クラスベースビュー「DeleteView」の書き方|ポイントをまとめました!
【5-8】こんなにカンタン!インポートをスッキリまとめる 整理する方法をお伝えします!

【第6章】ユーザーモデルクラスについて

Django最大の特長の一つ、「ユーザー認証」について触れていきます。

Djangoを扱うのであれば、必ず覚えておきたい知識です。

【6-1】オリジナルのユーザーモデルクラスを作成|emailでのログイン方法へ変更
painting
【6-2】ユーザークラスのAdminページを見やすく変更|UserAdminクラスについてわかりやすく解説!
【6-3】django-allauthでユーザー認証を一から構築|導入と設定方法を解説
laptop-img
【6-4】django-allauth メールアドレスでログイン認証|「user has no field named ‘username’」エラーを解決しよう!
【6-5】超カンタン!メールをターミナルに表示する方法を解説|「ConnectionRefused」エラーを回避しよう!
【6-6】django-allauthのtemplates変更|実例付
【6-7】ログアウトページを非表示・即ログアウト機能へ変更する方法【初学者向け】
【6-8】メッセージフレームワークについて【メッセージのカスタマイズ|CSSを適用させてかっこよく!】
ユーザーモデルクラス, django-allauthのテストプログラムを作ろう
【6-9】ログイン、ログアウト、サインアップページのテスト|django-allauthの各ページをtest.pyでチェックしよう!

【第7章】日報モデルクラスとユーザーモデルクラス

外部キーと呼ばれる、一つのモデルから別のモデルを参照する方法について解説していきます。

アプリ開発には欠かせない知識です。

【7-1】モデルフィールド「Foreign Key」でユーザーと日報を紐付ける
light
【7-2】クラスベースビューでアクセスを制限【LoginRequiredMixin】|ログインユーザーへのみページを表示する
connect
【7-3】ログイン以外でのアクセス制限|UserPassesTestMixinとuser_passes_test ユーザー認証の基本と実例
【7-4】django-allauthメッセージ文のカスタマイズ【CSSを適用させてかっこよく!】
【7-5】メッセージフレームワークの書き方と実例
【7-6】独自のテンプレートフィルタを作成する方法
【7-7】ユーザーがログインしているかどうかを識別する方法を解説!
【7-8】OneToOneFieldについて|書き方と実例でわかりやすく解説します
【7-9】複数のモデルクラスを同一ページで編集する|ユーザークラスのAdminフォームをカスタマイズ
laptop-img
【7-10】adapterのカスタマイズ|動的にログイン後のリダイレクト先を変更する

【第8章】公開前にブラッシュアップ!機能の追加

各単元ごとに開発を進めてきましたが、公開前に日報アプリとして修正を加える箇所がいくつかあります。

テーマ別で記事にしていますので、①ご興味のあるもの②上から順にと、お好きな方法で学習して下さい。

【6-1】日報に新しいフィールドの追加「公開・非公開」
【6-3】pyファイルをまとめてモジュール化 する
【6-6】フォームバリデーションの設定
search-form
【6-7】検索機能 Search method を追加する
【6-8】SlugFieldの追加
【6-9】モデルフィールドのデフォルト値を関数で設定
【6-10】DateFieldをカレンダー入力に変更
【6-11】django-filterのchoicesを動的に操作
【6-12】ユーザー別のリストページを作成
【6-13】フィルターのデザインを変更

【第9章】本番環境へデプロイ

実際にWeb上でアクセスするための大事な部分です。

Djangoそのものの知識とは違いますが、公開されている情報も少ないのでとても貴重な記事になります。

deploy-settings-django
【7-1】デプロイ前に必ずやっておきたいこと3選
【7-2】Webアプリをネットで公開する流れと最初の一歩
【7-3-1】自前のコンピューターを準備しよう!
【7-3-2】クラウド上でUbuntu OSを準備する
【7-4】SSH接続とは?リモートコンピューターへアクセス
make-web-server
【7-5】Webサーバーの構築 Ubuntu × Apache2
【7-6】DjangoアプリをApache Webサーバーで公開

【第10章】デプロイ後にやること

今までのローカル環境と本番環境でやるべきことは違います。

Web上での公開ができたらやっておきたいことを下記にまとめています。

【8-0】「固定IPアドレスを持っていない!」という方へ
【8-1】独自ドメインの取得
domain-ipaddress
【8-2】IPアドレスと独自ドメイン@DigitalOcean
【8-3】無料でSSL化
【8-3】WebアプリでGメールを使う
【8-4】サイトマップを作成
【8-5】サーチコンソールへ登録
【8-6】タイトルとメタディスクリプション
【8-7】お問合せフォームの作成

わからないことがあったら

もしご不明な点があれば、当ブログのお問い合わせフォームから、もしくは私のツイッターアカウントでご質問受けつけます。

せっかくの学習を無駄にせず、わからないことは聞いて下さい。

問い合わせフォームはこちら

筆者のツイッターアカウントはこちら

タイトルとURLをコピーしました