Django CRUD Todo 앱을 처음부터 빌드하기

Patricia Arquette
풀어 주다: 2024-10-27 17:05:30
원래의
619명이 탐색했습니다.

풀 스택 개발을 배우는 가장 좋은 방법은 간단한 프론트-백/엔드 및 DB 연결을 통해 해당 언어로 CRUD 앱을 만드는 것이라고 생각합니다.
따라서 이 가이드에서는 Django를 사용하여 간단한 CRUD(생성, 읽기, 업데이트, 삭제) Todo 애플리케이션을 만드는 과정을 안내합니다. 프로젝트를 설정하고, 앱을 만들고, Django가 권장하는 디렉토리 구조로 모든 것을 정리하겠습니다.

MY Github, 트위터

전제 조건

시작하기 전에 다음 사항을 확인하세요.

  • 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에서 할일 생성, 나열, 업데이트 및 삭제를 위한 뷰를 정의합니다.

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/을 방문하세요. 할 일 목록을 확인하고 작업을 생성, 업데이트, 삭제할 수 있어야 합니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!