1분 안에 간단한 Python Django ToDo 앱 개발
안녕하세요 장고
Completed App |
Django Official Website |
Getting Started
프로젝트의 디렉토리를 만들고 탐색하십시오.
mkdir hello-django && cd hello-django
Python 가상 환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate
장고 프로젝트 만들기
django-admin startproject todoapp
방금 만든 django-project 폴더
todoapp
로 이동하고 서버를 실행합니다.cd todoapp
python manage.py runserver
Ctrl + C를 사용하여 서버를 종료하고 프로젝트 내에 응용 프로그램 구성 요소를 만듭니다
todolist
.python manage.py startapp todolist
todoapp/settings.py
INSTALLED_APPS의 앱 목록에 응용 프로그램 구성 요소를 추가합니다.INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'todolist', /* added line */
]
todolist/views.py
로 이동하십시오.# Create your views here.
def index(request):
return render(request, "base.html", { "todo_list": todos })
urls.py
에 경로를 등록합니다.from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index")
]
include
기능을 사용하여 기본 앱의 todoapp/urls.py
에 todolist URL을 추가합니다.from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('todolist.urls')),
]
templates/base.html
파일을 만듭니다.Django에 필요한 약간의 수정
{% csrf_token %}
templates
배열의 DIR
배열 항목에 TEMPLATES
디렉토리를 추가합니다.TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'], /* modified */
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
todolist/models.py
from django.db import models
# Create your models here.
class Todo(models.Model):
title=models.CharField(max_length=350)
complete=models.BooleanField(default=False)
def __str__(self):
return self.title
달리다
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
그런 다음 지침에 따라 이름, 이메일 및 암호를 만듭니다todolist/admin.py
로 이동하여 모델 등록from django.contrib import admin
from .models import Todo
# Register your models here.
admin.site.register(Todo)
todolist/views.py
로 이동하지 않고 Todo 모델을 가져옵니다.from django.shortcuts import render
from .models import Todo
# Create your views here.
def index(request):
todos = Todo.objects.all()
return render(request, "base.html", { "todo_list": todos })
python manage.py runserver
.http://127.0.0.1:8000/에서 개발 서버 시작
레코드를 추가하려고 하면 오류가 발생합니다.
단, TodoApp은 관리자 패널을 통해 찾기 작동http://127.0.0.1:8000/admin
todolist/views.py
로 이동하십시오.from django.shortcuts import render, redirect
from django.views.decorators.http import require_http_methods
from .models import Todo
# Create your views here.
def index(request):
todos = Todo.objects.all()
return render(request, "base.html", { "todo_list": todos })
@require_http_methods(["POST"])
def add(request):
title = request.POST["title"]
todo = Todo(title=title)
todo.save()
return redirect("index")
def update(request, todo_id):
todo = Todo.objects.get(id=todo_id)
todo.complete = not todo.complete
todo.save()
return redirect("index")
def delete(request, todo_id):
todo = Todo.objects.get(id=todo_id)
todo.delete()
return redirect("index")
todolist/urls.py
의 urlpatterns에 보기를 추가합니다.from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('add', views.add, name='add'),
path('delete/<int:todo_id>/', views.delete, name='delete'),
path('update/<int:todo_id>/', views.update, name='update'),
]
템플릿/base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Todo App - Django</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.js"></script>
</head>
<body>
<div style="margin-top: 50px;" class="ui container">
<h1 class="ui center aligned header">Django ToDo App</h1>
<form class="ui form" action="/add" method="post">
<div class="field">
<label>Todo Title</label>
<input type="text" name="title" placeholder="Enter ToDo task...">
<br>
</div>
<button class="ui blue button" type="submit">Add</button>
</form>
<hr>
{% for todo in todo_list %}
<div class="ui segment">
<p class="ui big header">{{ todo.id }} | {{ todo.title }}</p>
{% if todo.complete == False %}
<span class="ui gray label">Not Complete</span>
{% else %}
<span class="ui green label">Complete</span>
{% endif %}
<a class="ui blue button" href="/update/{{ todo.id }}">Update</a>
<a class="ui red button" href="/delete/{{ todo.id }}">Delete</a>
</div>
{% endfor %}
</div>
</body>
</html>
마지막으로 앱
python manage.py runserver
을 다시 시작하거나 새로 고칩니다.http://127.0.0.1:8000/ 및 기본 제공Admin Panel에서 앱 검토
코드를 커밋하고 github.com에 푸시하고 가상 환경을 비활성화합니다.
$ deactivate
$ conda deactivate
📚 Sam의 다른 블로그
| Hashnode.dev | Medium.com
Reference
이 문제에 관하여(1분 안에 간단한 Python Django ToDo 앱 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nditah/develop-a-simple-python-django-todo-app-in-1-minute-4908텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)