django(pythonのwebフレームワーク)で、単純なSNSを作ってみた(ログインとテキスト投稿のみ)

django(pythonのwebフレームワーク)で、単純なSNSを作ってみた(ログインとテキスト投稿のみ)

機能一覧
1, ユーザー管理(ユーザ登録、ログイン、ログアウト)
2, 投稿(テキストのみ)
3, フォロー
4, いいね
5, コメント

プロジェクト生成。

settings.pyを修正。

sns_app/models.py に投稿モデルを定義(ユーザID、投稿テキスト、作成日時)

migrateコマンドでDBテーブルを作る

sns_app/forms.pyを新規作成。Webフォームを作る
ModelForm を使うと、モデルに基づいたフォームが簡単に作れる!
djangoって、機能アプリ分割しているので、内部のmodels.py, forms.py, views.pyは1ファイルに統合しているのね。

既存のsns_app/views.pyに、ビューを書く(投稿一覧、ユーザ登録、投稿フォーム)
laravelのcontrollerは、djangoだとviewって表現するのでややこしい。
laravelのbladeビューは、djangoだとtemplateって表現する!

sns_appフォルダとsns_projectフォルダの両方のurls.pyに、ルーティングを記述する

テンプレートを生成
base.htmlが文字通り、大元のテンプレート扱いで、各テンプレートは、それをベースに色々拡張している

ヘッダ・フッタ、ログイン・ログアウトなど全画面で使う表示を定義

ルート画面(トップ画面)。投稿一覧と投稿フォーム

ユーザ登録

ログイン画面

ログアウト画面

投稿画面。トップ画面に統合しちゃったので不要になった・・・。