为您提供一个简单的 Django 网站示例,并对其代码进行介绍,以便您了解 Django 项目的基本结构和运行方式。
在这个示例中,我们将创建一个简单的待办事项清单网站。用户可以添加新的待办事项,查看现有的待办事项列表,并标记已完成的任务。
确保您已经安装了 Django。如果尚未安装,请使用以下命令安装:
pip install Django
创建一个新的 Django 项目并启动应用:
django-admin startproject todo_project
cd todo_project
python manage.py startapp todo_app
在 todo_app 目录下,创建 models.py 文件,定义待办事项模型:
from django.db import models
class TodoItem(models.Model):
title = models.CharField(max_length=200)
completed = models.BooleanField(default=False)
def __str__(self):
return self.title
运行数据库迁移,创建数据库表:
python manage.py makemigrations
python manage.py migrate
在 todo_app 目录下,创建 views.py 文件,定义视图函数:
from django.shortcuts import render, redirect
from .models import TodoItem
def index(request):
if request.method == 'POST':
title = request.POST.get('title')
TodoItem.objects.create(title=title)
return redirect('index')
todo_items = TodoItem.objects.all()
return render(request, 'index.html', {'todo_items': todo_items})
def mark_completed(request, item_id):
todo_item = TodoItem.objects.get(pk=item_id)
todo_item.completed = True
todo_item.save()
return redirect('index')
def delete_completed(request):
TodoItem.objects.filter(completed=True).delete()
return redirect('index')
在 todo_project 目录下,创建 urls.py 文件,并定义 URL 路由:
from django.urls import path
from todo_app import views
urlpatterns = [
path('', views.index, name='index'),
path('mark_completed/<int:item_id>/', views.mark_completed, name='mark_completed'),
path('delete_completed/', views.delete_completed, name='delete_completed'),
]
在项目的根目录下,创建 urls.py 文件,并包含应用的 URL 配置:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('todo_app.urls')),
]
在项目的根目录下,创建 templates 文件夹,并在其中创建一个名为 index.html 的模板文件:
<!DOCTYPE html>
<html>
<head>
<title>Todo List</title>
</head>
<body>
<h1>Todo List</h1>
<form method="post">
{% csrf_token %}
<label for="title">New Todo:</label>
<input type="text" name="title" id="title" required>
<button type="submit">Add</button>
</form>
{% for todo_item in todo_items %}* <input type="checkbox" {% if todo_item.completed %}checked{% endif %} onclick="location.href='{% url 'mark_completed' todo_item.id %}'">
{{ todo_item.title }}
<form method="post" action="{% url 'delete_completed' %}">
{% csrf_token %}
<button type="submit">Delete Completed</button>
</form>
</body>
</html>
运行 Django 开发服务器:
python manage.py runserver
现在,您可以在浏览器中访问 http://127.0.0.1:8000/
查看并使用您的待办事项清单网站。您可以添加新的待办事项,勾选已完成的任务,并在需要时删除已完成的任务。
请注意,这只是一个简单的示例,用于说明 Django 项目的基本结构和功能。在实际项目中,您可能需要更复杂的功能和更全面的错误处理。如果您对特定功能有更多的问题,可以在需要时进行进一步的学习和调整。