Django CRUD Todo アプリをゼロから構築する

Patricia Arquette
リリース: 2024-10-27 17:05:30
オリジナル
619 人が閲覧しました

フルスタック開発を学ぶ最良の方法は、単純なフロントバック/エンドと DB 接続を使用して、その言語で CRUD アプリを作成することだと信じています。
したがって、このガイドでは、Django を使用して単純な CRUD (作成、読み取り、更新、削除) Todo アプリケーションを作成する手順を説明します。プロジェクトをセットアップし、アプリを作成し、Django の推奨ディレクトリ構造ですべてを整理します。

私のGithub、Twitter

前提条件

始める前に、次のものが揃っていることを確認してください。

  • Python がインストールされている (バージョン 3.6 が望ましい)
  • Django がインストールされています (まだインストールしていない場合は、pip install django を使用してインストールします)

手順の概要

  1. Django プロジェクトとアプリのセットアップ
  2. Todo のモデルの定義
  3. CRUD 操作用のビューの作成
  4. 各ビューに URL を追加する
  5. アプリの HTML テンプレートの作成
  6. サーバーの実行

ステップ 1: Django プロジェクトとアプリをセットアップする

  1. todo_project という名前の Django プロジェクトを作成します:
   django-admin startproject todo_project
   cd todo_project
ログイン後にコピー
ログイン後にコピー
  1. todo という名前のアプリを作成します:
   python manage.py startapp todo
ログイン後にコピー
ログイン後にコピー
  1. この時点のディレクトリ構造:

フォルダーは次のようになります:

   todo_project/
   ├── manage.py
   ├── todo/                  # App directory created
   │   ├── migrations/
   │   ├── __init__.py
   │   ├── admin.py
   │   ├── apps.py
   │   ├── models.py
   │   ├── tests.py
   │   ├── views.py
   └── todo_project/
       ├── __init__.py
       ├── asgi.py
       ├── settings.py
       ├── urls.py
       ├── wsgi.py
ログイン後にコピー
ログイン後にコピー
  1. アプリを登録します todo_project/settings.py: settings.py を開き、INSTALLED_APPS に「todo」を追加します。
   INSTALLED_APPS = [
       # Other installed apps
       'todo',
   ]
ログイン後にコピー
ログイン後にコピー

ステップ 2: Todo モデルを定義する

  1. todo/models.py で Todo モデルを定義します:

次のコードを追加して、タスク (説明) と完了 (ステータス) のフィールドを持つモデルを作成します。

   from django.db import models

   class Todo(models.Model):
       task = models.CharField(max_length=200)
       completed = models.BooleanField(default=False)

       def __str__(self):
           return self.task
ログイン後にコピー
ログイン後にコピー
  1. 移行の適用:

モデルを定義した後、次のコマンドを実行して、このモデルのデータベース テーブルを作成します。

   python manage.py makemigrations
   python manage.py migrate
ログイン後にコピー

Building a Django CRUD Todo App from Scratch


ステップ 3: CRUD 操作用のビューを作成する

todo/views.py で Todo を作成、リスト、更新、削除するためのビューを定義します:

from django.shortcuts import render, redirect
from .models import Todo

# Create a new Todo
def create_todo(request):
    if request.method == 'POST':
        task = request.POST['task']
        Todo.objects.create(task=task)
        return redirect('list_todos')
    return render(request, 'todo/create_todo.html')

# List all Todos
def list_todos(request):
    todos = Todo.objects.all()
    return render(request, 'todo/list_todos.html', {'todos': todos})

# Update a Todo
def update_todo(request, todo_id):
    todo = Todo.objects.get(id=todo_id)
    if request.method == 'POST':
        todo.task = request.POST['task']
        todo.completed = 'completed' in request.POST
        todo.save()
        return redirect('list_todos')
    return render(request, 'todo/update_todo.html', {'todo': todo})

# Delete a Todo
def delete_todo(request, todo_id):
    todo = Todo.objects.get(id=todo_id)
    todo.delete()
    return redirect('list_todos')
ログイン後にコピー

ステップ 4: URL パターンを追加する

todo/urls.py で各ビューの URL を定義します:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.list_todos, name='list_todos'),
    path('create/', views.create_todo, name='create_todo'),
    path('update/<int:todo_id>/', views.update_todo, name='update_todo'),
    path('delete/<int:todo_id>/', views.delete_todo, name='delete_todo'),
]
ログイン後にコピー

メインの urls.py ファイルに、アプリの URL を含めます:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('todo.urls')),
]
ログイン後にコピー

ステップ 5: HTML テンプレートを作成する

次に、todo アプリ内のテンプレート ディレクトリ内に HTML テンプレートを作成します。次の構造に従ってください:

todo/
├── migrations/
├── templates/
│   └── todo/
│       ├── list_todos.html
│       ├── create_todo.html
│       └── update_todo.html
├── models.py
├── views.py
└── ...
ログイン後にコピー
  1. テンプレート フォルダー構造を作成します:
   mkdir -p todo/templates/todo
ログイン後にコピー
  1. テンプレートを作成します:

list_todos.html

タスクのリストを表示し、タスクを追加、編集、または削除するためのリンクを提供します。

   django-admin startproject todo_project
   cd todo_project
ログイン後にコピー
ログイン後にコピー

create_todo.html

新しいタスクを追加するためのフォーム。

   python manage.py startapp todo
ログイン後にコピー
ログイン後にコピー

update_todo.html

既存のタスクを編集するためのフォーム。

   todo_project/
   ├── manage.py
   ├── todo/                  # App directory created
   │   ├── migrations/
   │   ├── __init__.py
   │   ├── admin.py
   │   ├── apps.py
   │   ├── models.py
   │   ├── tests.py
   │   ├── views.py
   └── todo_project/
       ├── __init__.py
       ├── asgi.py
       ├── settings.py
       ├── urls.py
       ├── wsgi.py
ログイン後にコピー
ログイン後にコピー

ステップ 6: サーバーを実行する

すべてのセットアップが完了したので、Django 開発サーバーを実行してアプリをテストします。

   INSTALLED_APPS = [
       # Other installed apps
       'todo',
   ]
ログイン後にコピー
ログイン後にコピー

ブラウザで http://127.0.0.1:8000/ にアクセスします。 Todo リストが表示され、タスクを作成、更新、削除できるようになります。

Building a Django CRUD Todo App from Scratch


最終的なディレクトリ構造

   from django.db import models

   class Todo(models.Model):
       task = models.CharField(max_length=200)
       completed = models.BooleanField(default=False)

       def __str__(self):
           return self.task
ログイン後にコピー
ログイン後にコピー

Building a Django CRUD Todo App from Scratch


それで終わりです! CRUD インターフェイスを備えた Django Todo アプリが正常に作成されました。この構造はスケーラブルであり、追加機能を追加したり、CSS を使用してアプリのスタイルを設定したりできるようになりました。コーディングを楽しんでください!

以上がDjango CRUD Todo アプリをゼロから構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!