풀 스택 개발을 배우는 가장 좋은 방법은 간단한 프론트-백/엔드 및 DB 연결을 통해 해당 언어로 CRUD 앱을 만드는 것이라고 생각합니다.
따라서 이 가이드에서는 Django를 사용하여 간단한 CRUD(생성, 읽기, 업데이트, 삭제) Todo 애플리케이션을 만드는 과정을 안내합니다. 프로젝트를 설정하고, 앱을 만들고, Django가 권장하는 디렉토리 구조로 모든 것을 정리하겠습니다.
MY Github, 트위터
전제 조건
시작하기 전에 다음 사항을 확인하세요.
- Python 설치됨(버전 3.6 권장)
- Django 설치(아직 pip install django를 사용하여 설치)
단계 개요
- Django 프로젝트 및 앱 설정
- Todo 모델 정의
- CRUD 작업을 위한 뷰 생성
- 각 보기에 대한 URL 추가
- 앱용 HTML 템플릿 생성
- 서버 실행
1단계: Django 프로젝트 및 앱 설정
- todo_project라는 Django 프로젝트를 만듭니다.
django-admin startproject todo_project cd todo_project
- todo라는 앱을 만듭니다.
python manage.py startapp todo
- 이 시점의 디렉토리 구조:
폴더는 다음과 같습니다.
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
- todo_project/settings.py에 앱을 등록하세요: settings.py를 열고 INSTALLED_APPS에 'todo'를 추가합니다.
INSTALLED_APPS = [ # Other installed apps 'todo', ]
2단계: Todo 모델 정의
- 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
- 마이그레이션 적용:
모델을 정의한 후 다음 명령을 실행하여 이 모델에 대한 데이터베이스 테이블을 생성하세요.
python manage.py makemigrations python manage.py migrate
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/<todo_id>/', views.update_todo, name='update_todo'), path('delete/<todo_id>/', views.delete_todo, name='delete_todo'), ] </todo_id></todo_id>
기본 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 └── ...
- 템플릿 폴더 구조 만들기:
mkdir -p todo/templates/todo
- 템플릿 만들기:
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/을 방문하세요. 할 일 목록을 확인하고 작업을 생성, 업데이트, 삭제할 수 있어야 합니다.
최종 디렉토리 구조
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
그리고 그게 다입니다! CRUD 인터페이스를 사용하여 Django Todo 앱을 성공적으로 만들었습니다. 이 구조는 확장 가능하며 이제 CSS를 사용하여 추가 기능을 추가하거나 앱 스타일을 지정할 수 있습니다. 즐거운 코딩하세요!
위 내용은 Django CRUD Todo 앱을 처음부터 빌드하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

pythonisnotpurelynlogreted; itusesahybrideprophorfbyodecodecompilationandruntime -INGRETATION.1) pythoncompilessourcecodeintobytecode, thepythonVirtualMachine (pvm)

ToconcatenatelistsinpythonwithesameElements, 사용 : 1) OperatorTokeEpduplicates, 2) asettoremovedUplicates, or3) listComperensionForControlOverDuplicates, 각 methodHasDifferentPerferformanCeanDorderImpestications.

PythonisancerpretedLanguage, 비판적 요소를 제시하는 PytherfaceLockelimitationsIncriticalApplications.1) 해석 된 언어와 같은 thePeedBackandbackandrapidProtoTyping.2) CompilledlanguagesLikec/C transformt 해석

useforloopswhhenmerfiterationsiskNownInAdvance 및 WhileLoopSweHeniTesslationsDepoyConditionismet whilEroopsSuitsCenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTherInatismet, 유용한 광고 인 푸트 gorit


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경