Python Django 入門トップページ


ユーザ認証とコメント掲示板の開発

  1. プロジェクトの概要
  2. プロジェクトの作成と初期設定
  3. アプリケーションの作成と有効化
  4. ルートの記述
  5. ビューの定義
  6. HTML のテンプレート化
  7. HTML ファイルの作成
  8. Web ページ雛形の表示確認
  9. トップページの作成
  10. データベースのマイグレーション
  11. ユーザの作成
  12. ユーザ認証機能の実装
  13. セッション情報の確認
  14. ユーザ認証の状態を表示
  15. Navbar を設置
  16. モデルの作成とマイグレーション
  17. テストデータの投入
  18. コメントの一覧表示
  19. ページネーションと更新逆順表示
  20. コメント投稿機能の実装
  21. フラッシュメッセージ
  22. コメント詳細表示ページの実装
  23. 投稿者のユーザ名とメールアドレスの表示
  24. 投稿者であるかどうかの判断
  25. 編集・更新機能の実装
  26. コメント削除機能の実装
  27. Navbar の調整
  28. Profile の表示
  29. Profile の編集と更新
  30. パスワードの変更
  31. 管理サイトの準備
  32. 管理ユーザの登録
  33. 管理サイトへのログインとスタッフの登録
  34. グループの追加と権限の付与
  35. 管理サイトに comments アプリケーションを登録
  36. Comments アプリケーションから管理サイトへ

ユーザ認証とコメント掲示板の開発

管理ユーザの登録

ここでは前のページで作成した管理サイトにログインできる管理ユーザを登録します.管理者の情報は次のとおりとします.もちろんより複雑なパスワードを設定すべきです.

ユーザIDメールアドレスパスワード
rootroot@sample.compassword

管理ユーザを登録する前に,データベースの中身を確認しておきます.現時点では3名のユーザが登録されています.

sqlite> .tables ⏎
auth_group                  comments_comment
auth_group_permissions      django_admin_log
auth_permission             django_content_type
auth_user                   django_migrations
auth_user_groups            django_session
auth_user_user_permissions
sqlite> select * from auth_user; ⏎
id|password|last_login|is_superuser|username|last_name|email|is_staff|is_active|date_joined|first_name
1|pbkdf2_sha256$320000$hXGzrjUu6Sqm7ze4Q9Eduo$xdmCzSdnbHE2iiCRDjbbnoe0iwAk4X4MnqtaAm4/Pt0=|2022-08-02 11:06:32.409679|0|user_a||a@sample.com|0|1|2022-07-31 13:53:51.544016|
2|pbkdf2_sha256$320000$nrTOdkjYd9CPvefDrlROLD$YIiYyhn4Z26mx2DykeX0CQ1eOvRPYJpgpWMxtn06pfs=|2022-08-02 11:39:10.177334|0|user_b|太郎|b@sample.com|0|1|2022-07-31 13:54:11.314263|学院
3|pbkdf2_sha256$216000$lzTrPsdykWWX$56XXbM6a8/cWmuRNhoEzks4TdAghu312GZuwxykCxo0=||0|user_c||c@sample.com|0|1|2022-07-31 13:54:21.775592|
sqlite>

上の表の情報に基づいて管理ユーザ (super user) を登録します.このとき「ことパスワードは一般的すぎます」という警告が表示されましたが今回は「y」で進めることにします.

(py39) C:\Users\lecture\Documents\django\django_comment_auth>python manage.py createsuperuser ⏎
ユーザー名 (leave blank to use 'lecture'): root ⏎
メールアドレス: root@example.com ⏎
Password:(パスワードを入力) ⏎
Password (again):(パスワードを入力) ⏎
このパスワードは一般的すぎます。
Bypass password validation and create user anyway? [y/N]: y ⏎
Superuser created successfully.

(py39) C:\Users\lecture\Documents\django\django_comment_auth>

上の操作で auth_user テーブルだけが変更されます.その中身を確認します.管理者として登録されたユーザには is_superuseris_staff 列に 1 が設定されていることに注意してください.

sqlite> select * from auth_user; ⏎
id|password|last_login|is_superuser|username|last_name|email|is_staff|is_active|date_joined|first_name
1|pbkdf2_sha256$320000$hXGzrjUu6Sqm7ze4Q9Eduo$xdmCzSdnbHE2iiCRDjbbnoe0iwAk4X4MnqtaAm4/Pt0=|2022-08-02 11:06:32.409679|0|user_a||a@sample.com|0|1|2022-07-31 13:53:51.544016|
2|pbkdf2_sha256$320000$nrTOdkjYd9CPvefDrlROLD$YIiYyhn4Z26mx2DykeX0CQ1eOvRPYJpgpWMxtn06pfs=|2022-08-02 11:39:10.177334|0|user_b|太郎|b@sample.com|0|1|2022-07-31 13:54:11.314263|学院
3|pbkdf2_sha256$216000$lzTrPsdykWWX$56XXbM6a8/cWmuRNhoEzks4TdAghu312GZuwxykCxo0=||0|user_c||c@sample.com|0|1|2022-07-31 13:54:21.775592|
4|pbkdf2_sha256$320000$u5Y83EbwixDkefgQbF1OUS$eLY8f7D/b4u24ySzl3hwzFHob9Qy2j9pBFQgs0+9Xnw=||1|root||root@example.com|1|1|2022-08-02 11:45:46.564688|
sqlite>

次のページではいま登録した管理ユーザ (root) で管理サイトにログインしてみます.

目次に戻る