Dev Classmethod Jp Articles Co Newgraduate2026 Training05 Fujise
【初心者】Djangoで作ったToDoアプリを改良してみた
- URL: https://dev.classmethod.jp/articles/co-newgraduate2026-training05-fujise
- 日付: 2026-06-25
- Tier: Tier 2
- 要旨: DjangoでのToDoアプリ改良版を実装。DB保存、削除・完了機能、期限・優先度設定、ログイン認証の4つの機能をCRUD操作とMVTアーキテクチャで追加した。データはSQLiteに直接記述した TaskManager クラスで操作し、ユーザーごとにタスクを分離するセキュリティ確保も含まれている。
詳細
Djangoプロジェクトは全体設定 config と機能単位 app に分ける。今回は accounts(認証)と todo(タスク管理)の2つ。MVTの3層は Model が DB操作、View がリクエスト処理、Template が HTML生成を担当。models.py では connection.cursor() で SQL を直接実行し、dictfetchall ヘルパーで辞書形式に変換。各操作が WHERE user_id = %s でユーザー制限され、他ユーザーのタスク閲覧・操作は防止される。views.py は @login_required デコレーターで認証必須化、request.POST.get() でフォーム値取得、TaskManager メソッドで CRUD を実行。urls.py でビューとパスを紐付け、config の include() で全アプリのルーティングを統一。template では {% extends ‘base.html’ %} で共通レイアウト継承、{% csrf_token %} で CSRF 対策、{% for task in tasks %} ループでテーブル表示。優先度は high/medium/low で badge 色分け、完了フラグは {% if task.completed %} で打ち消し線適用。ユーザー登録は Django標準の UserCreationForm を活用、ログイン・ログアウトは django.contrib.auth.urls で自動提供。設計から改良まで学習を通じて MVT 全体像を把握できた。