Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django开发前端新增功能


在 Django 开发中,前端新增功能通常涉及创建新的 HTML 页面、前端视图函数以及与后端的交互。下面我将为你展示一个简单的示例,其中我们将实现一个待办事项列表的功能。

创建 HTML 页面

首先,在 Django 的模板目录中创建一个新的 HTML 文件,用于展示待办事项列表。

在你的 Django 项目的模板目录中(通常是 templates 文件夹),创建一个名为 todo_list.html 的文件,并添加以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Todo List</title>
</head>
<body>
    <h1>Todo List</h1>

        {% for todo in todos %}*   {{ todo }}
    <form id="todoForm">
        <input type="text" id="newTodo" placeholder="New Todo">
        <button type="submit">Add</button>
    </form>
    <script>
        document.getElementById('todoForm').onsubmit = function(event) {
            event.preventDefault();
            var newTodo = document.getElementById('newTodo').value;
            fetch('/add_todo/', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-CSRFToken': getCookie('csrftoken'),
                },
                body: JSON.stringify({ 'todo': newTodo })
            })
            .then(response => response.json())
            .then(data => {
                window.location.reload();
            })
            .catch(error => console.error('Error:', error));
        };

        // Function to get CSRF token for making AJAX requests.
        function getCookie(name) {
            var cookieValue = null;
            if (document.cookie && document.cookie !== '') {
                var cookies = document.cookie.split(';');
                for (var i = 0; i < cookies.length; i++) {
                    var cookie = cookies[i].trim();
                    // Does this cookie string begin with the name we want?
                    if (cookie.substring(0, name.length + 1) === (name + '=')) {
                        cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return cookieValue;
        }
    </script>
</body>
</html>

创建前端视图函数

接下来,我们需要在 views.py 文件中创建一个前端视图函数,负责渲染待办事项列表页面。

在你的 Django 项目的 views.py 文件中添加以下代码:

from django.shortcuts import render

def todo_list(request):
    todos = ['Item 1', 'Item 2', 'Item 3']  # Replace this with your actual todo list data
    return render(request, 'todo_list.html', {'todos': todos})

在这个例子中,我们只是简单地将一个固定的待办事项列表传递给模板,实际应用中你可以从数据库或其他数据源获取数据。

创建后端视图函数

我们还需要创建一个后端视图函数,负责处理前端通过 AJAX 提交的新待办事项。

views.py 文件中添加以下代码:

from django.http import JsonResponse

def add_todo(request):
    if request.method == 'POST':
        todo = request.POST.get('todo')
        # Add the new todo to the database or perform other actions as needed.
        return JsonResponse({'success': True})
    return JsonResponse({'success': False, 'error': 'Invalid request method.'})

配置 URL 路由

最后,我们需要配置 URL 路由,将前端视图函数与 URL 映射起来。

在你的 Django 项目的 urls.py 文件中添加以下代码:

from django.urls import path
from . import views

urlpatterns = [
    path('todo_list/', views.todo_list, name='todo_list'),
    path('add_todo/', views.add_todo, name='add_todo'),
]

现在,当用户访问 /todo_list/ 时,将展示待办事项列表页面。用户可以在输入框中输入新的待办事项,点击“Add”按钮后,前端会通过 AJAX 将新的待办事项提交到 /add_todo/ URL,并触发后端视图函数 add_todo 进行处理。在这个简单示例中,我们只是返回一个成功的 JSON 响应,实际应用中你需要在 add_todo 函数中执行适当的逻辑,比如将待办事项保存到数据库。

请注意,这个示例只是一个简单的演示,实际应用中你可能需要增加更多的错误处理、用户认证、数据存储等功能。此外,我们在示例中使用了 Django 自带的模板系统,实际项目中你可能会使用更现代的前端框架(如 React、Vue.js 等)来构建更复杂的前端交互。

以下是一些可以与Django结合使用的前端框架,并附上简要的解释:React.Material-UI:优势在于实现了时尚的MaterialD ...
DjangoTemplateEngine:Django自带的模板引擎,允许你在HTML中嵌入Python代码。jQuery是一个广泛使用的J ...
日期功能扩展了时间序列,在财务数据分析中起主要作用。在处理日期数据的同时,我们经常会遇到以下情况 - ...
Django的Admin界面是一个强大且可定制的后台管理界面,你可以通过定制Admin模板来改变其外观和行为。py`中进行设置:###Dja ...
然后按照以下步骤进行开发:###创建Django项目和应用###定义模型打开books/models.py文件中定义视图函数:###创建模板 ...