Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django 回传表单数据


Django 提供了多种方式来回传表单数据,以下是几种常见的实现方式,每种方式都会详细介绍步骤流程并结合示例代码进行说明。

假设我们有一个简单的表单,用于用户提交姓名和电子邮件地址。

<!-- templates/form.html -->
<form method="post" action="{% url 'form_submission' %}">
  {% csrf_token %}
  <label for="name">Name:</label>
  <input type="text" id="name" name="name"><br>
  <label for="email">Email:</label>
  <input type="email" id="email" name="email"><br>
  <input type="submit" value="Submit">
</form>

使用 Django 的基于类的视图(Class-Based Views)

步骤流程:

  1. 创建一个继承自 django.views.View 的类视图。
  2. 在视图中处理 GET 请求以显示表单,处理 POST 请求以处理提交的数据。
  3. 在模板中使用表单字段的名称来呈现表单。

示例代码:

# views.py
from django.views import View
from django.shortcuts import render
from .forms import MyForm

class MyFormView(View):
    template_name = 'form.html'

    def get(self, request):
        form = MyForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = MyForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            # 处理数据...
        return render(request, self.template_name, {'form': form})

使用函数视图

步骤流程:

  1. 创建一个函数视图来处理 GET 和 POST 请求。
  2. 在视图中处理 GET 请求以显示表单,处理 POST 请求以处理提交的数据。
  3. 在模板中使用表单字段的名称来呈现表单。

示例代码:

# views.py
from django.shortcuts import render
from .forms import MyForm

def my_form_view(request):
    template_name = 'form.html'
    form = MyForm()

    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            # 处理数据...

    return render(request, template_name, {'form': form})

使用 Django 的内置 FormView

步骤流程:

  1. django.views.generic.edit 导入 FormView
  2. 创建一个继承自 FormView 的子类,并设置 form_class 属性。
  3. 在模板中使用表单字段的名称来呈现表单。

示例代码:

# views.py
from django.views.generic.edit import FormView
from .forms import MyForm

class MyFormView(FormView):
    template_name = 'form.html'
    form_class = MyForm
    success_url = '/success/'  # 成功提交后的跳转URL

    def form_valid(self, form):
        name = form.cleaned_data['name']
        email = form.cleaned_data['email']
        # 处理数据...
        return super().form_valid(form)

这里只介绍了几种常见的方式,实际上还有其他方式,如使用 Django 的 ModelForm 来处理与数据库模型相关的表单。无论选择哪种方式,都要根据项目需求和代码结构来选择最合适的方法。

###方式一:基于DjangoForm类的验证创建表单类:创建一个继承自django.###方式二:基于DjangoModelForm的验证 ...
Django 表单组件允许你轻松地创建、验证和处理用户输入的数据,比如用户注册、登录、搜索等操作。数据处理:一旦用户提交了表单,表单组件将收 ...
Django的Form表单是一种用于处理和验证用户输入数据的工具,它允许您在Web应用程序中创建HTML表单并处理表单提交的数据。###最佳 ...
在Django中,表单增删改查通常是指使用Django的模型(Model)和表单(Form)来实现对数据库数据的操作。下面是一些示例视图函数 ...
我们已经看到,可以在 URL 规则中指定 http 方法。URL 映射的函数接收到的表单数据可以以字典对象的形式收集,并将其转发给模板以在相 ...