在Django 4.0 中使用表单是一个常见的任务,它允许你在前端与用户进行交互,并将用户提交的数据传递到后端进行处理。Django提供了django.forms模块,使得创建和处理表单变得简单。以下是一个基本的使用Django表单的例子:

首先,你需要创建一个继承自django.forms.Form的表单类。这个类定义了表单的字段和验证规则。
# forms.py

from django import forms

class MyForm(forms.Form):
    name = forms.CharField(label='Your Name', max_length=100)
    email = forms.EmailField(label='Your Email')
    message = forms.CharField(label='Your Message', widget=forms.Textarea)

接下来,在你的视图中,你可以使用这个表单类来处理用户提交的数据。
# views.py

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        # 如果是POST请求,创建一个表单实例并使用POST数据填充它
        form = MyForm(request.POST)
        if form.is_valid():
            # 处理有效的表单数据
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            message = form.cleaned_data['message']
            # 进行其他操作,例如保存到数据库

            # 清空表单
            form = MyForm()
    else:
        # 如果是GET请求,创建一个空的表单实例
        form = MyForm()

    # 渲染模板,并将表单传递给模板
    return render(request, 'my_template.html', {'form': form})

最后,在你的模板中,你可以使用表单的属性和方法来渲染表单和处理用户输入。
<!-- my_template.html -->

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

这只是一个基本的示例。在实际应用中,你可能需要处理更复杂的表单,使用表单验证、自定义字段、自定义小部件等。Django的表单系统非常强大,可以满足各种需求。

记得在使用表单时注意保护你的应用免受跨站请求伪造(CSRF)攻击,使用 {% csrf_token %} 来包含CSRF令牌。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7242/Django