📜  如何使用 Django Forms 创建表单?(1)

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

如何使用 Django Forms 创建表单?

在 Django 中,表单可以让用户通过网站与应用程序进行交互。 Django 提供了一个简单且易于使用的表单框架,即 Django Forms,它可以快速创建表单、验证和处理用户输入。

创建一个表单

创建一个表单需要完成以下步骤:

  1. 创建一个 forms.py 文件
  2. 导入 forms 模块
  3. 定义一个表单类
  4. 在表单类中定义字段
  5. 为每个字段定义验证规则

以下是示例代码:

from django import forms

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

在上面的示例中,我们创建了一个名为 ContactForm 的表单。该表单包含了四个字段:name、email、subject 和 message。其中,name 和 subject 是 CharField,email 是 EmailField,message 是一个文本区域。

渲染表单

下一步是在视图函数中渲染表单。这需要完成以下步骤:

  1. 导入表单类
  2. 实例化表单
  3. 将实例化的表单传递给模板进行渲染

以下是示例代码:

from django.shortcuts import render
from .forms import ContactForm

def contact(request):
    form = ContactForm()
    return render(request, 'contact.html', {'form': form})

在上面的示例中,我们创建了一个名为 contact 的视图。在视图中,我们实例化了 ContactForm,并将它传递给模板。

处理表单提交

最后一步是处理表单提交。处理表单提交需要完成以下步骤:

  1. 在视图中检查请求类型(GET 或 POST)
  2. 如果请求类型是 POST,则实例化表单并将请求传递给它
  3. 检查表单是否有效
  4. 如果有效,则处理表单并将用户重定向到其他页面
  5. 如果无效,则重新渲染表单并将错误消息传递给它

以下是示例代码:

from django.shortcuts import render, redirect
from .forms import ContactForm

def contact(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            # 处理表单
            return redirect('thanks')
    else:
        form = ContactForm()
    return render(request, 'contact.html', {'form': form})

在上面的示例中,我们检查了请求类型是否为 POST。如果是,则通过实例化 ContactForm 对表单进行处理,然后将用户重定向到感谢页面。如果无效,则重新渲染 ContactForm 并将错误消息传递给它。

参考文献: