Django 表单 — 自动生成与验证
Django Forms:自动生成 HTML 表单、验证数据、防 CSRF · 难度:进阶 · +20XP
Django Forms
手写表单 + 验证很繁琐。Django Forms自动生成表单 HTML 并验证数据。
定义 Form 类
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100, label="姓名")
email = forms.EmailField(label="邮箱")
message = forms.CharField(widget=forms.Textarea)
视图中使用
def contact(request):
if request.method == "POST":
form = ContactForm(request.POST)
if form.is_valid():
name = form.cleaned_data["name"]
# 数据安全,可以使用
return redirect("thanks")
else:
form = ContactForm()
return render(request, "contact.html", {"form": form})
HTML 表单自动生成,CSRF 防护自动加上,验证逻辑内置。