在 Django 中,表单用于处理用户输入,并将其提交到服务器进行处理。Django 提供了一种称为 forms 的模块,用于创建和处理表单。以下是 Django 表单的基本概念和用法:

1. 创建表单类: 在 Django 中,表单通常由一个继承自 forms.Form 的类来表示。每个表单字段都是该类的一个属性,可以使用不同的字段类型(如文本、整数、日期等)。
    from django import forms

    class MyForm(forms.Form):
        name = forms.CharField(max_length=100)
        email = forms.EmailField()
        age = forms.IntegerField()

    在这个例子中,MyForm 类定义了三个字段:name、email 和 age。

2. 在视图中使用表单: 在视图函数中,你可以通过实例化表单类来创建表单对象,并将其传递给模板以在页面中呈现。
    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']
                age = form.cleaned_data['age']
                # 进行进一步的处理,例如保存到数据库
        else:
            form = MyForm()

        return render(request, 'my_template.html', {'form': form})

    在这个例子中,如果是 POST 请求,将使用用户提交的数据实例化表单对象。然后,通过 is_valid() 方法验证表单的有效性,如果有效,可以通过 cleaned_data 属性获取经过清理的数据。

3. 在模板中呈现表单: 在模板中,可以使用表单对象的属性和方法来渲染表单。
    <form method="post" action="{% url 'my_view' %}">
        {% csrf_token %}
        {{ form.as_p }}
        <input type="submit" value="Submit">
    </form>

    在这个例子中,{{ form.as_p }} 会将表单以 HTML 段落的形式呈现。{% csrf_token %} 用于添加跨站请求伪造(CSRF)令牌,以确保表单提交的安全性。

4. 处理提交的表单数据: 在视图中,可以通过检查 request.method 的值来确定表单是否被提交。如果是 POST 请求,可以通过表单对象的属性(如 cleaned_data)来获取用户输入的数据,并进行进一步的处理。
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            age = form.cleaned_data['age']
            # 处理数据...

这是一个简单的 Django 表单的入门介绍。Django 表单提供了丰富的功能,包括字段验证、自定义验证器、表单组合等,使得处理用户输入变得更加方便和安全。深入了解 Django 表单可以让你更好地构建交互性强、用户友好的 Web 应用。


转载请注明出处:http://www.zyzy.cn/article/detail/13913/Django