백엔드 개발 파이썬 튜토리얼 Django CRUD Todo 앱을 처음부터 빌드하기

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

Oct 27, 2024 pm 05:05 PM

풀 스택 개발을 배우는 가장 좋은 방법은 간단한 프론트-백/엔드 및 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법 Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법 Mar 05, 2025 am 09:58 AM

Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법

파이썬에서 파일을 다운로드하는 방법 파이썬에서 파일을 다운로드하는 방법 Mar 01, 2025 am 10:03 AM

파이썬에서 파일을 다운로드하는 방법

파이썬의 이미지 필터링 파이썬의 이미지 필터링 Mar 03, 2025 am 09:44 AM

파이썬의 이미지 필터링

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를 사용하여 캐시하는 방법

NLTK (Natural Language Toolkit) 소개 NLTK (Natural Language Toolkit) 소개 Mar 01, 2025 am 10:05 AM

NLTK (Natural Language Toolkit) 소개

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까? Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까? Mar 10, 2025 pm 06:52 PM

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?

See all articles