从头开始构建 Django CRUD Todo 应用程序

Patricia Arquette
发布: 2024-10-27 17:05:30
原创
619 人浏览过

我相信学习全栈开发的最佳方法是使用该语言创建一个具有简单前后端/端和数据库连接的 CRUD 应用程序。
因此,本指南将引导您使用 Django 创建一个简单的 CRUD(创建、读取、更新、删除)Todo 应用程序。我们将设置项目,创建应用程序,并在 Django 推荐的目录结构中组织所有内容。

我的 Github、推特

先决条件

在我们开始之前,请确保您已经:

  • Python已安装(最好是3.6版本)
  • Django 安装(如果尚未安装,请使用 pip install django 安装)

步骤概述

  1. 设置 Django 项目和应用程序
  2. 定义 Todo 的模型
  3. 为 CRUD 操作创建视图
  4. 为每个视图添加 URL
  5. 为应用程序创建 HTML 模板
  6. 运行服务器

第 1 步:设置 Django 项目和应用程序

  1. 创建一个名为todo_project的Django项目:
   django-admin startproject todo_project
   cd todo_project
登录后复制
登录后复制
  1. 创建一个名为todo的应用程序:
   python manage.py startapp todo
登录后复制
登录后复制
  1. 此时的目录结构:

您的文件夹应如下所示:

   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
登录后复制
登录后复制
  1. 在 todo_project/settings.py 中注册应用程序: 打开 settings.py 并将“todo”添加到 INSTALLED_APPS:
   INSTALLED_APPS = [
       # Other installed apps
       'todo',
   ]
登录后复制
登录后复制

第 2 步:定义 Todo 模型

  1. 在 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
登录后复制
登录后复制
  1. 应用迁移:

定义模型后,运行以下命令为此模型创建数据库表:

   python manage.py makemigrations
   python manage.py migrate
登录后复制

Building a Django CRUD Todo App from Scratch


步骤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/<int:todo_id>/', views.update_todo, name='update_todo'),
    path('delete/<int:todo_id>/', views.delete_todo, name='delete_todo'),
]
登录后复制

在主 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 应用程序的 templates 目录中创建 HTML 模板。遵循以下结构:

todo/
├── migrations/
├── templates/
│   └── todo/
│       ├── list_todos.html
│       ├── create_todo.html
│       └── update_todo.html
├── models.py
├── views.py
└── ...
登录后复制
  1. 创建模板文件夹结构
   mkdir -p todo/templates/todo
登录后复制
  1. 创建模板:

list_todos.html

显示任务列表并提供用于添加、编辑或删除任务的链接。

   django-admin startproject todo_project
   cd todo_project
登录后复制
登录后复制

创建待办事项.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/。您应该看到待办事项列表并能够创建、更新和删除任务。

Building a Django CRUD Todo App from Scratch


最终目录结构

   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
登录后复制
登录后复制

Building a Django CRUD Todo App from Scratch


就是这样!您已成功创建带有 CRUD 界面的 Django Todo 应用程序。这种结构是可扩展的,您现在可以添加其他功能或使用 CSS 设计应用程序的样式。快乐编码!

以上是从头开始构建 Django CRUD Todo 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!