1. 简单示例
1.1. 设置表单
# forms.py
from django import forms # 导入 forms 模块
class NameForm(forms.Form): # 继承 forms.Form 类
first_name = forms.CharField(label='First Name', max_length=100)
# CharField 表单字段类型(表单字段类型)
# label 字段参数:标签说明(核心字段参数)
# max_length 字段参数:限制,前端和后端验证
error_css_class = 'error' # 自定义错误信息的 CSS class
required_css_class = 'required' # 自定义 required 字段的 CSS class
参考:CharField 设置 - 字段类型
参考:max_length 设置 - 通用字段参数
1.2. 视图函数
# views.py
#...
from .forms import NameForm
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST) # 实例化表单
if form.is_valid():
first_name = form.cleaned_data['first_name'] # 表单API
return HttpResponseRedirect('/ok/')
else:
form = NameForm()
return render(request, 'form.html', {'form':form})
1.3. 表单模板
<!-- form.html(表单模板) -->
<form action="" method="post">
{% csrf_token %}
{{ form }} # 表单模板标签
<input type="submit" value="Submit">
</form>