📜  Django 表单集(1)

📅  最后修改于: 2023-12-03 14:40:47.712000             🧑  作者: Mango

Django表单集

Django表单集是一种Django框架中的功能强大的表单系统。它可以让开发人员创建各种类型的表单,包括登录表单、注册表单、联系表单等等。 Django表单集可通过使用Django提供的各种表单字段来创建表单。

使用Django表单集
创建表单类

要使用Django表单集,首先需要导入以下模块:

from django import forms

接下来,我们需要创建一个表单类并继承于forms.Form:

class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    message = forms.CharField()
    sender = forms.EmailField()
    cc_myself = forms.BooleanField(required=False)

上述示例代码创建了一个名为ContactForm的表单类,其中包含四个表单字段。下面分别介绍一下这些表单字段的作用:

  • CharField:限制输入值的长度,并自动创建相关的HTML元素。该字段可用于输入文本、数字、日期等信息。
  • EmailField:限制输入值为电子邮件格式。
  • BooleanField:在HTML中创建复选框。
渲染表单

要在HTML页面中呈现一个表单,需要使用Django的表单渲染器。以下是一个简单的HTML代码片段,用于呈现上述ContactForm:

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">Submit</button>
</form>

as_p方法用于创建适用于p标签的HTML元素,其中包含每个表单字段以及相应的标签。也可以使用as_table或as_ul方法将表单字段渲染为HTML表格或无序列表。

处理表单数据

当用户提交表单后,该表单数据将保存在request.POST字典中。要验证表单数据并使用处理逻辑,请创建一个视图函数并将表单实例化:

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            # 处理表单数据
            subject = form.cleaned_data['subject']
            message = form.cleaned_data['message']
            sender = form.cleaned_data['sender']
            cc_myself = form.cleaned_data['cc_myself']
            # 处理逻辑
            return HttpResponseRedirect('/thanks/')
    else:
        form = ContactForm()
    return render(request, 'contact.html', {'form': form})

is_valid方法用于验证表单数据。如果表单数据有效,则表单中的所有数据都将可用于处理逻辑。否则,将显示相应的错误消息。

总结

Django表单集提供了一种强大和灵活的方式来处理用户输入数据,使开发人员能够快速构建各种类型的表单。通过使用Django表单集,我们可以轻松地创建、渲染和验证表单数据,并在表单数据无效时显示错误消息。