📜  Python|使用 Django 的 ToDo webapp(1)

📅  最后修改于: 2023-12-03 15:19:17.858000             🧑  作者: Mango

Python | 使用 Django 的 ToDo webapp

介绍

在现代生活中,任务管理是一项非常重要的任务。有许多工具可以帮助人们管理他们的任务。在本文中,我们将了解如何使用 Django 创建一个简单的任务管理 web 应用程序。

在这个应用程序中,我们将使用 Django 的强大特性来创建一个简单的任务管理器,用户可以使用它来添加、编辑和删除任务。

技术栈

以下是实现此应用程序所需的技术栈:

  • Python
  • Django
  • HTML
  • CSS
  • JavaScript
步骤
1. 环境准备

在开始创建应用程序之前,我们需要安装 Python 和 Django。我们可以使用以下命令安装 Django:

pip install django
2. 创建 Django 项目

创建 Django 项目的步骤如下所示:

django-admin startproject todo_app

这将创建一个名为 todo_app 的 Django 项目。

3. 创建任务应用程序

进入项目目录后,使用以下命令创建一个名为 task_manager 的 Django 应用程序:

python manage.py startapp task_manager

这将创建一个名为 task_manager 的 Django 应用程序。

4. 创建模型

为了存储任务,我们需要创建一个任务模型。在 task_manager/models.py 文件中,我们可以定义任务模型:

from django.db import models

class Task(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    completed = models.BooleanField(default=False)

    def __str__(self):
        return self.title

此模型有三个字段:标题、描述和完成状态。__str__ 方法返回标题,以便在管理页面上显示任务的标题。

5. 创建视图

为了能够与模型交互,我们需要创建视图。在 task_manager/views.py 文件中,我们可以定义视图:

from django.shortcuts import render, redirect
from .models import Task

def index(request):
    tasks = Task.objects.all()
    return render(request, 'index.html', {'tasks': tasks})

def add_task(request):
    if request.method == 'POST':
        task = Task(title=request.POST['title'], description=request.POST['description'])
        task.save()
        return redirect('/')
    return render(request, 'add_task.html')

def edit_task(request, id):
    task = Task.objects.get(id=id)

    if request.method == 'POST':
        task.title = request.POST['title']
        task.description = request.POST['description']
        task.completed = 'completed' in request.POST
        task.save()
        return redirect('/')

    return render(request, 'edit_task.html', {'task': task})

def delete_task(request, id):
    task = Task.objects.get(id=id)
    task.delete()
    return redirect('/')

此视图定义了添加、编辑和删除任务的功能。其中,index 视图渲染主页,add_task 视图渲染添加任务表单页面,edit_task 视图渲染编辑任务表单页面,delete_task 视图处理删除任务的请求。

6. 创建模板

为了呈现数据,我们需要创建模板。在 task_manager/templates 文件夹中,我们可以创建以下模板:

  • index.html:呈现主页
  • add_task.html:呈现添加任务表单页面
  • edit_task.html:呈现编辑任务表单页面

以下是 index.html 模板的示例:

<!DOCTYPE html>
<html>
<head>
    <title>Tasks</title>
</head>
<body>
    <h1>Tasks</h1>
    <ul>
        {% for task in tasks %}
            <li>{{ task.title }} <a href="/edit_task/{{ task.id }}">Edit</a> <a href="/delete_task/{{ task.id }}">Delete</a></li>
        {% endfor %}
    </ul>
    <a href="/add_task">Add Task</a>
</body>
</html>
7. 创建 URL 路由

为了能够访问视图和模板,我们需要创建 URL 路由。在 todo_app/urls.py 文件中,我们可以定义 URL 路由:

from django.urls import path
from task_manager.views import index, add_task, edit_task, delete_task

urlpatterns = [
    path('', index),
    path('add_task', add_task),
    path('edit_task/<int:id>', edit_task),
    path('delete_task/<int:id>', delete_task),
]

这个路由定义了主页、添加任务、编辑任务和删除任务的 URL。

8. 运行应用程序

最后,我们可以通过运行以下命令来启动应用程序:

python manage.py runserver

这将启动 Django 开发服务器,我们可以在浏览器中访问 http://localhost:8000 来查看我们的任务管理器应用程序。

结论

在本文中,我们了解了如何使用 Django 创建一个简单的任务管理 web 应用程序。从一开始创建项目,到定义模型、视图和模板,到创建 URL 路由,最后运行应用程序,我们覆盖了创建 Django 应用程序的基本步骤。