【Django】SNSを作って学ぶ本格チュートリアル
本チュートリアルでは、SNS開発を通してDjangoの開発方法の基礎知識を学んでいきます。
- Pythonを学んだのでWebアプリ開発に挑戦してみたい
- 転職用ポートフォリオをDjangoで作りたい
- Djangoで個人開発してみたい
という方にはとてもおすすめの内容になっています。
目次
作るもの
今回作るのは、犬の画像を投稿・シェアできる「イヌスタグラム🐾」。可愛いワンちゃんたちの写真を共有しながら、ユーザー登録や画像投稿、認証機能などの実践的なDjangoスキルを習得していきます。Web開発の基礎から、ちょっとしたデザインの工夫まで、あらゆる工程を段階的に解説するので、初心者の方でも安心です。
チュートリアルの全体像
第1章: Djangoの開発環境を構築しよう (now🐾)
開発環境構築
Dockerインストール
以下のサイトからDockerをインストールします。
開発環境構築コード取得
git clone https://github.com/techinit-blog/django-inusta-workspace
Docker起動
先ほどインストールしたDockerをクリックして起動します。
Dockerコンテナ起動
以下のコマンドでDockerコンテナを起動します。
cd django-inusta-workspace
docker compose up -d --build
Djangoプロジェクト作成
docker compose run app django-admin startproject myapp .
以下のようにDjangoプロジェクトファイルが生成されます。
.
├── assets
├── compose.yml
├── docker
├── manage.py
└── myapp
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
localhost:8000にアクセスして、以下のページが表示されれば成功です!
myapp/settings.pyの設定を以下のように書き換えます。
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "database",
"USER": "user",
"PASSWORD": "password",
"HOST": "db",
"PORT": "3306",
}
}
素材
先ほどダウンロードした inusta-workspace/assets
内に画像ファイルを置いてあります。
投稿を作成するときのサンプル画像としてお使いください。
Djangoの特徴
環境構築が完了したところで、Djangoの特徴を解説していきます。
細かい内容は、後の章で詳しく解説するので、まずは概要をつかむことを意識してください。
Djangoは、Pythonで書かれたフルスタックのWebフレームワークで、迅速な開発とクリーンな設計に焦点を当てています。その特徴を理解することで、これから進めていく開発の土台がしっかりと見えてきます。
迅速な開発 Djangoは「再発明をしない」方針を採用しており、開発者がよく使う機能(認証、管理画面、フォーム処理など)がすでに含まれているため、0から実装する手間を省き、より短期間でアプリを作成できます。特に、短いコードで多機能なアプリを開発できるため、効率よくプロジェクトを進められます。
MVTアーキテクチャ Djangoは「Model-View-Template(MVT)」というアーキテクチャに基づいており、アプリケーションの開発を分かりやすく整理できます。
- Model(モデル): データベースの構造を定義し、アプリケーションとデータベース間のデータ処理を担います。
- View(ビュー): ビジネスロジックを実行し、モデルからデータを取得してテンプレートに渡します。
- Template(テンプレート): HTMLなどのファイルとして、ビューから渡されたデータを基に画面に表示します。
Djangoの管理画面 Djangoには、開発者向けの強力な管理画面が標準で組み込まれており、データベース内のデータをGUIで管理できます。この管理画面は、少しの設定で即座に利用可能になり、特別なカスタマイズをすることなく、簡単にデータの確認・編集・削除などが可能です。管理画面の利用は、プロジェクト開発における効率を大幅に向上させ、特に初期段階のデータ管理やテストに役立ちます。
豊富な機能と拡張性 Djangoは、ユーザー認証、セキュリティ(CSRF対策やSQLインジェクション防止)、フォーム処理、メール送信、ファイルアップロードなど、Webアプリケーションでよく必要とされる機能をあらかじめ備えています。これにより、開発者はこれらの機能を0から作成する必要がなく、迅速にプロジェクトの構築ができます。また、Djangoは拡張性も高く、さまざまなプラグインやライブラリを利用することで、カスタマイズも容易です。
スケーラビリティとセキュリティ Djangoは、個人開発から大規模な商業アプリケーションまで対応できるスケーラビリティを備えています。安全なデフォルト設定がされており、セキュリティに関する懸念事項も十分に考慮されています。データベースやフォームのバリデーション機能に加えて、セキュリティ機能が強化されているため、一般的なWebセキュリティリスク(SQLインジェクション、XSS攻撃など)を自動的に回避することができます。
Djangoの管理画面
Djangoの強力な機能のうちの一つが、管理画面(Admin Interface)です。わずかな設定で利用でき、データベースのデータを簡単に管理できるようになります。開発者や管理者がアプリケーションのデータを視覚的に操作できるため、特にバックエンドの管理が簡単になります。
管理画面のアクセス Djangoのプロジェクトを作成後、スーパーユーザー(管理者)アカウントを作成することで、管理画面にアクセスできます。http://localhost:8000/admin/
にアクセスし、スーパーユーザーの認証情報を入力すると、すぐに使えるようになります。
機能 管理画面では、以下のような操作が可能です。
- データの閲覧: データベースに保存されているモデルのレコード(データ)を一覧表示できます。
- データの作成・編集・削除: 新しいレコードの追加や、既存のデータの編集、削除ができます。
- フィルタリングと検索: 複数の項目でデータを検索したり、フィルターを使って特定のデータのみを抽出したりできます。
- 拡張可能: モデルに対するカスタムアクションの追加や、フォームの表示項目を自由に変更することも可能です。
簡単な設定 Djangoの管理画面は、admin.py
で設定されているモデルを登録するだけで、即座に管理対象として利用できます。これにより、データベースのデータ操作をコードに触れることなくGUIで行えるため、管理の負担が大幅に軽減されます。
カスタマイズ可能 管理画面は、ただデフォルトのUIを使うだけでなく、必要に応じて表示内容や操作を自由にカスタマイズできます。たとえば、表示するフィールドやリストに含める項目を変更したり、管理者だけに見せたい項目を設定することができます。
Djangoの管理画面は、簡単に始められるだけでなく、柔軟にカスタマイズできるため、非常に便利で強力なツールです。実際の開発でも頻繁に利用することになるため、しっかりと理解しておくことが重要です。
このように、Djangoの特徴と管理画面の利用方法を理解することで、効率的かつ安全なWebアプリケーション開発を進めるための基礎が固まります。次に進む段階で、Djangoの各要素を活用しながら、実際のアプリケーション作成に取り組んでいきましょう。
まとめ
以上で環境構築は終了です。
それではチュートリアルを始めていきましょう!
この記事へのコメントはありません。