forms.py是Django用来生成form表单代码和验证表单数据是否合法的一个文件, 可以在该文件中创建Form类, 实现自定义表单的功能
from django import forms
class EmailForm(forms.Form):
# IntegerField自带的有一个widget,就是Form表单输入框的类型及相关属性,自带的是number类型的输入框
# required 是否为必填参数
# label 标签文本
# 虽然自定义了输入框类型,但是验证的时候还是根据IntegerField进行验证
# error_message 自定义错误信息
subject = forms.IntegerField(required=True,label='邮件主题',widget=forms.TextInput(attrs={'class':'form-control','placeholder':'请输入邮件主题'}),error_messages={'invalid':'必须填入数字!'})
# max_length 文本最大长度
# min_length 最小文本长度
message = forms.CharField(required=True,max_length=256,min_length=4,label='邮件内容',widget=forms.Textarea(attrs={'class':'form-control','placeholder':'请输入邮件内容'}))
# 收件人地址 forms.EmailField()
sender = forms.EmailField(required=True,label='收件人地址',widget=forms.TextInput(attrs={'class':'form-control','placeholder':'请输入收件人地址'}),error_messages={'invalid':"请填入正确的邮箱地址!"})
# 布尔类型数据
myself = forms.BooleanField(required=False,label='是否向自己发送')
from .forms import EmailForm
def index(request):
form = EmailForm()
return render(request, 'index.html', {'form': form})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="#">
{{ form }}
{# {{ form.subject }}#}
{# {{ form.message }}#}
{# {{ form.sender }}#}
{# {{ form.myself }}#}
<button type="submit">提交</button>
</form>
</body>
</html>
注: 如果只写form的话, 它会默认的把forms.py里的所有表单创建出来, 反之, 一个一个的写就会把你所写表单展示出来.