Django 表单简介
Django 表单是一个用于接收、验证和处理用户输入的工具。通过 Django 表单,我们可以将用户输入的数据传递给视图函数,并在处理过程中对其进行验证和处理。
Django 表单的基本结构包括字段和验证器。字段是用户输入数据的具体内容,比如文本、日期等等;验证器则用来验证这些字段的内容是否符合预期。
下面是一个简单的 Django 表单的例子:
from django import forms class MyForm(forms.Form): name = forms.CharField(label='Your name') email = forms.EmailField(label='Your email')
这个表单有两个字段,一个是名字,一个是邮箱。我们可以在视图函数中使用这个表单来接收用户输入的数据。下面是一个处理这个表单的视图函数的例子:
from django.shortcuts import render from .forms import MyForm def my_view(request): 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, 'success.html') else: form = MyForm() return render(request, 'myform.html', {'form': form})
在这个视图函数中,我们首先判断请求的方法是否为 POST,如果是 POST 请求,我们就通过 request.POST 创建一个 MyForm 的实例,然后使用 is_valid()
方法来验证表单是否有效。如果表单验证通过,我们就可以从 cleaned_data
属性中获取到用户输入的数据,并进行处理。最后,我们将处理结果渲染到模板中。
如果表单验证不通过(比如用户输入的数据不符合要求),form.is_valid()
方法将返回 False。在这种情况下,我们可以使用 form.errors
属性来获取验证错误信息,并将这些错误信息渲染到模板中,让用户修正错误并重新提交表单。
下面是一个使用 Django 表单的模板的例子:
<form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form>
在这个模板中,我们首先使用 {% csrf_token %}
标签来生成 CSRF 令牌,以防止跨站请求伪造攻击。然后,我们使用 {{ form.as_p }}
标签来将表单渲染成 HTML。这个标签会自动为每个字段生成一个 <p>
标签,并将标签中的 label 和 input 组合起来。
以上就是 Django 表单的简单介绍。需要注意的是,Django 表单还有其他的一些特性,比如文件上传、表单布局等等,需要更详细地了解的读者可以参考 Django 官方文档。
相关文章