


Selesai ✅ : Panduan langkah demi langkah dalam membina Senarai Tugasan Django
pengenalan
Mengurus tugas dengan berkesan adalah penting dalam kehidupan sibuk kita, dan aplikasi senarai tugasan boleh menjadi alat yang sangat baik untuk kekal teratur. Catatan blog ini membimbing anda melalui pembangunan aplikasi senarai tugasan menggunakan Django, rangka kerja web yang berkuasa dan serba boleh dalam Python. Projek itu, bertajuk django-todoList, direka untuk membantu pengguna mencipta, mengurus dan menjejaki tugas harian mereka dengan lancar.
Prasyarat
Sebelum kita mula, pastikan anda mempunyai perkara berikut:
Python dipasang (sebaik-baiknya versi 3.8 ke atas).
Django dipasang. Jika tidak, anda boleh memasangnya menggunakan arahan berikut.
pip install django
- Pemahaman asas tentang cara Django berfungsi dan kebiasaan dengan Python dan HTML.
Langkah 1: Menyediakan Projek
1.1 Cipta Projek Django
Pertama, buat projek Django baharu menggunakan arahan:
django-admin startproject mysite
Navigasi ke dalam folder projek anda:
cd mysite
1.2 Cipta Apl Django
Seterusnya, buat apl dalam projek. Kami akan memanggilnya todoList:
python manage.py startapp todoList
Langkah 2: Tentukan Model
Dalam Django, model digunakan untuk menentukan struktur data anda. Untuk apl Tugasan GetDone, kami memerlukan model untuk mewakili Tugasan.
Navigasi ke todoList/models.py dan tentukan model Tugas:
from django.db import models from django.contrib.auth.models import User class Task(models.Model): title = models.CharField(max_length=200) description = models.TextField() complete = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) deadline = models.DateTimeField(null=True, blank=True) user = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.title
Model ini termasuk medan seperti tajuk, penerangan, tarikh akhir dan lengkap untuk menyimpan butiran setiap tugas. Kami juga mengaitkan setiap tugas dengan pengguna melalui kunci asing pengguna.
2.1 Pindahkan Pangkalan Data
Setelah model sedia, jalankan migrasi untuk mencipta jadual untuk model ini dalam pangkalan data:
python manage.py makemigrations python manage.py migrate
Langkah 3: Cipta Borang
Kami memerlukan borang untuk mengendalikan input pengguna untuk membuat dan mengemas kini tugas. Dalam todoList/forms.py, cipta Borang Tugas:
from django import forms from .models import Task class TaskForm(forms.ModelForm): class Meta: model = Task fields = ['title', 'description', 'deadline', 'complete'] widgets = { 'title': forms.TextInput(attrs={'placeholder': 'Enter task title'}), 'description': forms.Textarea(attrs={'placeholder': 'Enter task description', 'rows': 4}), 'deadline': forms.DateTimeInput(attrs={'type': 'datetime-local'}), 'complete': forms.CheckboxInput(), } def clean_title(self): title = self.cleaned_data.get('title') if not title: raise forms.ValidationError('Title is required') return title def clean_description(self): description = self.cleaned_data.get('description') if not description: raise forms.ValidationError('Description is required') return description def clean_deadline(self): deadline = self.cleaned_data.get('deadline') if not deadline: raise forms.ValidationError('Deadline is required') return deadline
Borang Tugas menggunakan Borang Model Django untuk mencipta medan borang secara automatik untuk model Tugas.
Langkah 4: Tentukan Pandangan
Seterusnya, kita perlu membuat paparan untuk mengendalikan permintaan pengguna, seperti membuat tugasan, mengemas kininya dan menyenaraikannya.
Dalam todoList/views.py, tentukan pandangan:
from django.shortcuts import render, redirect from django.views.generic import ListView, CreateView, UpdateView, DeleteView from django.contrib.auth.views import LoginView from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.forms import UserCreationForm from django.urls import reverse_lazy from .models import Task from .forms import TaskForm from django.contrib import messages from django.utils import timezone # Task List View class TodoListView(LoginRequiredMixin, ListView): model = Task context_object_name = 'tasks' template_name = 'task_list.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) user_tasks = Task.objects.filter(user=self.request.user) context['tasks'] = Task.objects.filter(user=self.request.user) context['incomplete_tasks_count'] = user_tasks.filter(complete=False).count() # Count incomplete tasks context['now'] = timezone.now() return context # Task Create View class TaskCreate(LoginRequiredMixin, CreateView): model = Task form_class = TaskForm template_name = 'todoList/task_create.html' success_url = reverse_lazy('todoList') def form_valid(self, form): form.instance.user = self.request.user messages.success(self.request, 'Task created successfully!') return super(TaskCreate, self).form_valid(form) # Task Update View class TaskUpdate(LoginRequiredMixin, UpdateView): model = Task form_class = TaskForm template_name = 'todoList/task_update.html' success_url = reverse_lazy('todoList') def form_valid(self, form): messages.success(self.request, 'Task updated successfully!') return super(TaskUpdate, self).form_valid(form) # Task Delete View class TaskDelete(LoginRequiredMixin, DeleteView): model = Task context_object_name = 'task' template_name = 'todoList/task_delete.html' success_url = reverse_lazy('todoList') def dispatch(self, request, *args, **kwargs): response = super().dispatch(request, *args, **kwargs) if response.status_code == 302: messages.success(self.request, 'Task deleted successfully!') return response # User Registration View class RegisterView(CreateView): form_class = UserCreationForm template_name = 'todoList/register.html' success_url = reverse_lazy('todoList') def form_valid(self, form): response = super().form_valid(form) # Log the user in after successful registration from django.contrib.auth import login login(self.request, self.object) messages.success(self.request, 'Registration successful! Welcome!') return response # Login View class CustomLoginView(LoginView): template_name = 'todoList/login.html' fields = '__all__' redirect_authenticated_user = True def get_success_url(self): messages.success(self.request, 'You have logged in successfully!') return reverse_lazy('todoList')
-TodoListView: Menyenaraikan semua tugasan untuk pengguna log masuk.
-TaskCreate: Mengendalikan penciptaan tugas.
-TaskUpdate: Membenarkan pengguna mengemas kini tugasan.
-TaskDelete: Menyediakan halaman pengesahan untuk memadamkan tugas.
T-he LoginRequiredMixin memastikan bahawa hanya pengguna log masuk boleh mengakses paparan ini.
Langkah 5: Konfigurasikan URL
Dalam todoList/urls.py, petakan URL ke paparan masing-masing:
pip install django
Corak URL ini akan memetakan setiap paparan ke URL tertentu. Contohnya, senarai tugasan dipaparkan pada URL akar apl dan pengguna boleh membuat, mengedit atau memadamkan tugasan dengan melawati URL tertentu.
Langkah 6: Cipta Templat
Buat templat HTML berikut untuk memaparkan paparan:
6.1 asas.html
Templat asas menyediakan reka letak yang konsisten untuk semua halaman:
django-admin startproject mysite
Langkah 8: Tambah Pengesahan Pengguna
Dalam views.py, anda boleh menggunakan paparan pengesahan pengguna terbina dalam Django untuk mengendalikan pendaftaran dan log masuk pengguna. Sebagai contoh, anda boleh menggunakan UserCreationForm untuk membenarkan pengguna mendaftar:
cd mysite
Langkah 8: Jalankan Pelayan
Setelah semuanya disediakan, anda boleh menjalankan pelayan:
python manage.py startapp todoList
Lawati http://127.0.0.1:8000/todoList untuk melihat apl Senarai Tugasan anda sedang beraksi!
Memahami settings.py dan urls.py dalam Folder mysite
settings.py
Fail settings.py adalah bahagian penting dalam setiap projek Django. Ia mengandungi tetapan konfigurasi untuk projek anda, seperti tetapan pangkalan data, apl yang dipasang, perisian tengah, konfigurasi fail statik dan banyak lagi. Fail ini mengawal gelagat projek anda dan membenarkan Django menyambungkan titik antara pelbagai komponen.
Berikut ialah gambaran keseluruhan ringkas tentang tetapan utama dalam settings.py untuk apl Senarai Tugasan GetDone anda:
Bahagian Utama dalam settings.py:
Apl yang Dipasang: Dalam senarai INSTALLED_APPS, anda mendaftarkan semua apl yang digunakan dalam projek anda. Contohnya:
from django.db import models from django.contrib.auth.models import User class Task(models.Model): title = models.CharField(max_length=200) description = models.TextField() complete = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) deadline = models.DateTimeField(null=True, blank=True) user = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.title
Di sini, kami telah menambahkan todoList, iaitu apl yang mengurus tugasan, di samping apl lalai yang disediakan oleh Django untuk pengesahan pengguna, panel pentadbir dan fail statik.
urls.py
Dalam Django, fail urls.py mengendalikan penghalaan permintaan HTTP kepada paparan. Di sinilah anda memetakan corak URL (seperti /tasks/, /login/) kepada paparan sepadan yang akan mengendalikannya.
Dalam mysite/urls.py, anda biasanya memasukkan URL untuk keseluruhan projek dan memautkannya ke fail urls.py peringkat apl.
Berikut ialah rupa urls.py dalam apl GetDone anda:
Bahagian Utama dalam urls.py:
Urls.py Tahap Projek (tapak saya/urls.py): Fail urls.py dalam folder tapak saya ialah penghala utama untuk keseluruhan projek Django anda. Ia termasuk URL untuk panel pentadbir, pengesahan dan pautan ke URL khusus apl anda. Berikut ialah contoh:
pip install django
path('admin/', admin.site.urls): Baris ini termasuk panel pentadbir Django.
path('accounts/', include('django.contrib.auth.urls')): Ini termasuk URL pengesahan terbina dalam untuk log masuk, log keluar dan pengurusan kata laluan.
path('', include('todoList.urls')): Ini termasuk URL khusus apl (ditakrifkan dalam todoList/urls.py), jadi pengguna boleh menavigasi melalui tugas dan ciri lain.
App-Level urls.py (todoList/urls.py): Fail ini memetakan URL khusus untuk paparan dalam apl todoList. Ia mengandungi laluan untuk melihat tugasan, mencipta tugasan dan tindakan berkaitan tugas lain. Contohnya:
django-admin startproject mysite
TodoListView.as_view(): Paparan ini menyenaraikan semua tugasan untuk pengguna log masuk.
TaskCreate.as_view(): Pandangan ini mengendalikan borang penciptaan tugas.
TaskUpdate.as_view(): Paparan ini mengendalikan borang kemas kini tugas.
TaskDelete.as_view(): Paparan ini mengendalikan halaman pengesahan pemadaman tugas.
Komunikasi Antara Fail
Seni bina Django membolehkan komunikasi lancar antara fail dan komponen yang berbeza:
URL dan Paparan:
urls.py memetakan URL kepada paparan, seperti penciptaan tugas atau paparan senarai. Pandangan ditakrifkan dalam views.py.
Model dan Pandangan:
Paparan berinteraksi dengan model (ditakrifkan dalam models.py) untuk mendapatkan dan memanipulasi data (tugas). Contohnya, dalam TodoListView, paparan mengambil tugasan yang dikaitkan dengan pengguna log masuk menggunakan Task.objects.filter(user=self.request.user).
Borang dan Pandangan:
Borang (seperti TaskForm dalam forms.py) mengendalikan input pengguna dan berinteraksi dengan model untuk mengesahkan dan menyimpan data.
templat:
Templat memberikan output akhir dalam HTML, memaparkan data yang dihantar daripada paparan dan mengendalikan input pengguna melalui borang.
Kesimpulan
Dengan langkah ini, anda telah membina apl senarai Tugasan yang berfungsi sepenuhnya menggunakan Django. Anda telah melaksanakan pengesahan pengguna, pengurusan tugas (buat, edit, padam) dan mempelajari cara seni bina MVC (MTV) Django memudahkan komunikasi lancar antara model, paparan, templat dan URL. Panduan ini berfungsi sebagai asas yang kukuh untuk membina aplikasi Django yang lebih kompleks pada masa hadapan.
Kod penuh aplikasi tersedia untuk diklon di
cd mysite
Selamat pengekodan! ?
Atas ialah kandungan terperinci Selesai ✅ : Panduan langkah demi langkah dalam membina Senarai Tugasan Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Fastapi ...

Menggunakan Python di Terminal Linux ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...
