📜  Django 表单示例 - Python (1)

📅  最后修改于: 2023-12-03 15:00:27.442000             🧑  作者: Mango

Django 表单示例 - Python

Django 是一个流行的 Python Web 开发框架,其中的表单组件很常用。本文将介绍一些 Django 表单的示例,帮助 Python 开发者了解 Django 表单的使用方法。

简单的表单
from django import forms

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

上述代码定义了一个简单的表单类 SimpleForm,包含了三个字段:nameemailmessage。其中 nameemail 为文本输入框,而 message 则为多行文本框。

需要注意的是,表单中的每个字段都需要指定相应的验证规则,这里使用了 CharField()EmailField() 来验证文本框中的输入。而 Textarea 则是一个多行文本框组件。

在视图中使用表单
from django.shortcuts import render
from .forms import SimpleForm

def simple_view(request):
    form = SimpleForm()
    return render(request, 'simple_view.html', {'form': form})

在视图函数 simple_view 中,我们创建了表单实例 form,并将其作为变量传递给了模板 simple_view.html。在模板中,可以使用 Django 的表单渲染器来自动生成表单。

以下是模板 simple_view.html 的代码:

<!doctype html>
<html>
<head>
    <title>Simple Form View</title>
</head>
<body>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Submit</button>
    </form>
</body>
</html>

模板中主要的部分是通过 form.as_p 渲染表单,其中 csrf_token 用于防止跨站请求伪造攻击。在表单中引入 csrf_token 可以在表单提交时进行验证。

使用表单数据

在处理表单数据时,可以在视图函数中对表单进行验证,通过使用 form.is_valid() 方法来判断是否表单验证通过。如果表单验证通过,则可以在表单中使用 form.cleaned_data 来获取验证后的数据。

以下是一个简单的示例:

def simple_view(request):
    if request.method == 'POST':
        form = SimpleForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            # 处理表单数据...
            return HttpResponse('Thanks for your message!')
    else:
        form = SimpleForm()
    return render(request, 'simple_view.html', {'form': form})

在上述代码中,我们使用 request.POST 对表单进行初始化,然后使用 is_valid() 方法进行验证。如果验证通过,则可以通过 cleaned_data 获取表单中的数据。如果验证不通过,则可以使用 form.errors 获取错误信息。