以下のサイトを参考に、初心者が完成までの道筋を辿ってみる。
このサイトをコピペすれば、初心者視点にとってはかなり完成度の高いSNSアプリが作れるが、このレベルのアプリを自分で1から作成する自信はない。その自信をつけるために、このアプリの作成過程を想像しながら、その手順をこのページに書き記しておくことにした。
ディレクトリ構成
元ページの「3. ディレクトリの構成とファイルの設定」をそのまま辿る。
プロジェクト名のみ「snsproject」→「snsproject_mine」に変更した。
概要
- 設定ディレクトリ、アプリディレクトリの作成
- settingにアプリを追加
- urlどうしの紐づけ
- static, templatesディレクトリの設定
完成形
snsproject_mine #プロジェクトディレクトリ
├── config #設定ディレクトリ
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── snsapp #アプリディレクトリ
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── tests.py
│ ├── urls.py #追加
│ └── views.py
├── static #追加
│ └── style.css #追加
├── templates #追加
│ └── base.html #追加
└── manage.py
公式チュートリアル等をもとに進めるとstaticとtemplatesはsnsapp下に配置することになるが、4つ目の設定を行うことでsnsproject直下に配置できる。今回は該当しないが、アプリケーションを複数作成するときに便利な構成である。
書籍「現場で使える Django の教科書《基礎編》」でもこの構成を採用していた。
うまくいっているか確認
元記事ではそのままコードの解説に入っているが、うまくいっているか不安なのでrunserverでページが表示されるか確認する。現段階でrunserverするとURLが見つからないとエラーを吐くので、URLを設定する。
snsapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
上記のURLで参照するviewも設定。
snsapp/view.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
これでrunserverをすると、ページが無事に表示された。
参考
今後の方針
さて、問題はここからである。元記事では淡々と、
- 認証機能
- CRUD機能
- いいね・フォロー機能
の順に実装を行っているが、その通りに進めるとデバッグができない(少なくとも自分は方法を知らない)のである。そこで、本記事では効率性を全く考えずに以下の順番で実装を進めていくことにした。
- CRUD機能(ユーザー関連の機能を除く)
- 認証機能
- 1と2を結びつける
- いいね・フォロー機能
CRUDを最初に実装することで、動作確認をブラウザ上で簡単に行いたいという魂胆がある。実際どうなのかは知らない。
というわけで次回はCRUD機能の実装を行っていく。