Django小项目实践:从简单的博客系统到待办事项应用的详细教程

Django小项目实践:从简单的博客系统到待办事项应用的详细教程

在本篇教程中,我们将一步一步地创建一个简单的 Django 项目,其中包含一个博客系统和一个待办事项应用。我们将从环境设置开始,然后逐步添加功能和细节。希望这个教程能帮助您深入理解 Django 框架。

目录

  • Django小项目实践:从简单的博客系统到待办事项应用的详细教程
    • 1. 环境准备
      • 1.1 安装 Python
      • 1.2 安装 Django
    • 2. 创建 Django 项目
      • 2.1 创建项目
      • 2.2 启动开发服务器
    • 3. 构建简单的博客系统
      • 3.1 创建应用
      • 3.2 定义模型
      • 3.3 创建视图
      • 3.4 创建模板
      • 3.5 配置 URL
      • 3.6 配置管理后台
      • 3.7 运行并查看博客
    • 4. 构建简单的待办事项应用
      • 4.1 创建应用
      • 4.2 定义模型
      • 4.3 创建视图
      • 4.4 创建模板
      • 4.5 配置 URL
      • 4.6 运行并查看待办事项
    • 5. 扩展功能
      • 5.1 添加表单
        • 创建 Post 表单
      • 5.2 编辑和删除操作
    • 6. 结语

1. 环境准备

首先,确保您已经安装了 Python 和 Django。如果尚未安装,请按照以下步骤进行安装。

1.1 安装 Python

下载并安装 Python,确保其版本至少为 3.6。安装好后,可以使用以下命令检查 Python 是否安装成功:

python --version

1.2 安装 Django

使用 pip 命令安装 Django:

pip install django

确认安装成功:

django-admin --version

2. 创建 Django 项目

接下来,我们将创建一个新的 Django 项目。

2.1 创建项目

通过下面的命令创建项目:

django-admin startproject myblog

进入项目目录:

cd myblog

2.2 启动开发服务器

使用以下命令启动开发服务器:

python manage.py runserver

打开浏览器,访问 http://127.0.0.1:8000/。如果能看到 Django 的欢迎页面,恭喜您,项目创建成功。

3. 构建简单的博客系统

3.1 创建应用

在项目中创建一个名为 blog 的应用:

python manage.py startapp blog

3.2 定义模型

blog/models.py 中定义博客文章的模型:

# blog/models.py
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

3.3 创建视图

blog/views.py 中创建视图以处理博客文章的展示:

# blog/views.py
from django.shortcuts import render
from .models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'blog/post_list.html', {'posts': posts})

3.4 创建模板

blog/templates/blog/ 目录下创建一个名为 post_list.html 的模板文件:

<!-- blog/templates/blog/post_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>My Blog</title>
</head>
<body>
    <h1>My Blog</h1>
    <ul>
        {% for post in posts %}
            <li>
                <strong>{{ post.title }}</strong><br>
                {{ post.content|truncatewords:30 }}
                <hr>
            </li>
        {% endfor %}
    </ul>
</body>
</html>

3.5 配置 URL

blog/urls.py 中配置 URL。首先,创建 urls.py 文件并添加以下代码:

# blog/urls.py
from django.urls import path
from .views import post_list

urlpatterns = [
    path('', post_list, name='post_list'),
]

然后,在 myblog/urls.py 中包含 blog 应用的 URL:

# myblog/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls')),
]

3.6 配置管理后台

blog/admin.py 中注册 Post 模型,以便在 Django 管理后台中管理博客文章:

# blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)

3.7 运行并查看博客

再次运行开发服务器,访问 http://127.0.0.1:8000/,您应该能看到博客文章的列表。要添加新文章,请访问 http://127.0.0.1:8000/admin/,使用默认的管理员帐户(如果您还没有,请创建一个账户)进行登录。

4. 构建简单的待办事项应用

接下来,我们将建立一个待办事项应用。

4.1 创建应用

在项目中创建一个名为 todo 的应用:

python manage.py startapp todo

4.2 定义模型

todo/models.py 中定义待办事项的模型:

# todo/models.py
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

4.3 创建视图

todo/views.py 中创建视图以展示待办事项列表:

# todo/views.py
from django.shortcuts import render
from .models import Todo

def todo_list(request):
    todos = Todo.objects.all()
    return render(request, 'todo/todo_list.html', {'todos': todos})

4.4 创建模板

todo/templates/todo/ 目录下创建一个名为 todo_list.html 的模板文件:

<!-- todo/templates/todo/todo_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Todo List</title>
</head>
<body>
    <h1>Todo List</h1>
    <ul>
        {% for todo in todos %}
            <li>
                {% if todo.completed %}
                    <strike>{{ todo.task }}</strike>
                {% else %}
                    {{ todo.task }}
                {% endif %}
            </li>
        {% endfor %}
    </ul>
</body>
</html>

4.5 配置 URL

todo/urls.py 中配置 URL。首先,创建 urls.py 文件并添加以下代码:

# todo/urls.py
from django.urls import path
from .views import todo_list

urlpatterns = [
    path('', todo_list, name='todo_list'),
]

然后,在 myblog/urls.py 中包含 todo 应用的 URL:

# myblog/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('todo/', include('todo.urls')),  # 添加待办事项应用的路径
    path('', include('blog.urls')),
]

4.6 运行并查看待办事项

重启开发服务器,访问 http://127.0.0.1:8000/todo/,你应该能看到待办事项列表。

在 Django 管理后台添加一些待办事项,访问 http://127.0.0.1:8000/admin/

5. 扩展功能

在这个基础上,我们可以扩展更多的功能。例如,添加新文章和待办事项的表单、编辑和删除文章及待办事项、用户认证系统等。

5.1 添加表单

我们可以通过 Django 表单让用户在前端添加新的博客文章和待办事项。首先创建表单。

创建 Post 表单

blog/forms.py 中定义表单:

# blog/forms.py
from django import forms
from .models import Post

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'content']

blog/views.py 中添加处理表单的视图:

# blog/views.py
from .forms import PostForm

def post_new(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            post = form.save()
            return redirect('post_list')
    else:
        form = PostForm()
    return render(request, 'blog/post_edit.html', {'form': form})

blog/urls.py 中添加 URL:

# blog/urls.py
from .views import post_list, post_new

urlpatterns = [
    path('', post_list, name='post_list'),
    path('new/', post_new, name='post_new'),
]

创建模板 blog/post_edit.html

<!-- blog/templates/blog/post_edit.html -->
<!DOCTYPE html>
<html>
<head>
    <title>New Post</title>
</head>
<body>
    <h1>New Post</h1>
    <form method="POST">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Save</button>
    </form>
</body>
</html>

访问 http://127.0.0.1:8000/new/ 来添加新的博客文章。

5.2 编辑和删除操作

您可以定义编辑和删除操作为用户提供更多功能。同样的方法可以用于 Todo 模型,定义相应的视图、URL 及表单。

6. 结语

通过本教程,我们创建了一个简单的博客系统,并在此基础上扩展了待办事项应用。通过逐步引入新功能,我们了解了 Django 的模型、视图和模板的基本使用。

接下来,您可以进一步探讨用户认证、API支持及前端框架(如 Vue.js 或 React)的整合,来提升项目的功能和用户体验。希望这个教程能够帮助您深入理解 Django,并在未来的项目中灵活应用这些知识。

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值