ホームページ バックエンド開発 Python チュートリアル Django CRUD Todo アプリをゼロから構築する

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

Oct 27, 2024 pm 05:05 PM

フルスタック開発を学ぶ最良の方法は、単純なフロントバック/エンドと 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

Natural Language Toolkit(NLTK)の紹介 Natural Language Toolkit(NLTK)の紹介 Mar 01, 2025 am 10:05 AM

Natural Language Toolkit(NLTK)の紹介

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

See all articles