Rumah >pembangunan bahagian belakang >Tutorial Python >Membina Apl Todo CRUD Django daripada Scratch
Saya percaya cara terbaik untuk mempelajari pembangun tindanan penuh ialah mencipta apl CRUD dalam bahasa itu dengan bahagian hadapan-belakang/hujung yang mudah dan sambungan db.
Jadi panduan ini akan memandu anda membuat aplikasi Todo CRUD (Buat, Baca, Kemas Kini, Padam) mudah menggunakan Django. Kami akan menyediakan projek, mencipta apl dan mengatur segala-galanya dalam struktur direktori yang disyorkan Django.
Sebelum kami bermula, pastikan anda mempunyai:
django-admin startproject todo_project cd todo_project
python manage.py startapp todo
Folder anda sepatutnya kelihatan seperti ini:
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
INSTALLED_APPS = [ # Other installed apps 'todo', ]
Tambahkan kod berikut untuk mencipta model dengan medan untuk tugasan (huraian) dan selesai (status).
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
Selepas mentakrifkan model, jalankan arahan ini untuk mencipta jadual pangkalan data untuk model ini:
python manage.py makemigrations python manage.py migrate
Tentukan paparan untuk membuat, menyenaraikan, mengemas kini dan memadamkan todo dalam 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')
Tentukan URL untuk setiap paparan dalam todo/urls.py:
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'), ]
Dalam fail urls.py utama, masukkan URL apl:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('todo.urls')), ]
Sekarang, buat templat HTML di dalam direktori templat dalam apl todo. Ikuti struktur ini:
todo/ ├── migrations/ ├── templates/ │ └── todo/ │ ├── list_todos.html │ ├── create_todo.html │ └── update_todo.html ├── models.py ├── views.py └── ...
mkdir -p todo/templates/todo
Memaparkan senarai tugasan dan menyediakan pautan untuk menambah, mengedit atau memadam tugasan.
django-admin startproject todo_project cd todo_project
Borang untuk menambah tugasan baharu.
python manage.py startapp todo
Borang untuk mengedit tugasan sedia ada.
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
Sekarang semuanya telah disediakan, jalankan pelayan pembangunan Django untuk menguji apl:
INSTALLED_APPS = [ # Other installed apps 'todo', ]
Lawati http://127.0.0.1:8000/ dalam penyemak imbas anda. Anda sepatutnya melihat senarai Tugasan dan boleh membuat, mengemas kini dan memadam tugasan.
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
Dan itu sahaja! Anda telah berjaya mencipta apl Django Todo dengan antara muka CRUD. Struktur ini boleh berskala dan kini anda boleh menambah ciri tambahan atau menggayakan apl dengan CSS. Selamat mengekod!
Atas ialah kandungan terperinci Membina Apl Todo CRUD Django daripada Scratch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!