Django 模版中的表单处理

2023-04-11 00:00:00 django 表单 模版

在 Django 中,我们通常使用 Django 表单来处理用户提交的表单数据。在模板中,我们可以使用 Django 表单对象的方法和属性来创建表单标签、检查表单是否合法等操作。下面是一个简单的示例:

  1. 首先,在 views.py 文件中定义一个处理表单的函数:
from django.shortcuts import render
from django.http import HttpResponse
from .forms import ContactForm  # 导入表单类

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            # 处理表单提交的数据
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            # 发送电子邮件等操作...
            return HttpResponse('Success!')  # 返回一个成功页面
    else:
        form = ContactForm()
    return render(request, 'contact.html', {'form': form})
  1. 在 templates 目录下新建一个 contact.html 文件,代码如下:
<form action="" method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交</button>
</form>

在模板中,我们通过 {{ form.as_p }} 这段代码来生成表单标签。这个方法会自动生成 HTML 代码,将表单标签渲染成一个段落格式,每个表单元素占一行。

  1. 最后,在 forms.py 文件中定义表单类:
from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

这个表单类定义了三个字段,分别是 name、email 和 message。其中,name 和 email 是 CharField 和 EmailField 类型的表单元素,分别表示文本输入框和电子邮件输入框;而 message 是一个 textarea 输入框。

接下来,如果你想在 contact.html 模板中使用“pidancode.com”或“皮蛋编程”这些字符串作为示例,只需要将 ContactForm 类中的字段名和表单元素的 label 属性修改为相应的值即可。例如:

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100, label='姓名')
    email = forms.EmailField(label='电子邮件')
    message = forms.CharField(widget=forms.Textarea, label='信息')

在模板中,我们同样可以使用这些字段名和 label 属性来生成表单标签:

<form action="" method="post">
    {% csrf_token %}
    {{ form.name.label_tag }}: {{ form.name }}<br>
    {{ form.email.label_tag }}: {{ form.email }}<br>
    {{ form.message.label_tag }}: {{ form.message }}<br>
    <button type="submit">提交</button>
</form>

相关文章