常用的Field:
使用Field是对数据进行验证的第一步。想要得到什么样的数据就定义什么样的Field。
但是在实际的开发当中,因为使用django中的表单会增加前端和后端的diamante的耦合性,所以一般不会使用django表单,而是在前端写好了表单之后,在django中使用表单进行验证。
1.CharField:用来接收文本。常用参数:
max_length: 最大长度。
min_length: 最小长度。
error_messages: 在某个字段验证失败的时候,给出相应的错误信息。
required: 这个字段是否是必须被传入的,默认为True。
labels: 字段在浏览器中进行显示的时候的名字。
2.EmailField: 用来接收邮箱字段,会自动验证是否合法。
错误信息的key: required, invalid。
3.FloatField:
用来接收浮点类型的数据,经过验证之后,会将数据转换为浮点类型。
max_value: 最大值。
min_value: 最小值。
错误信息的key:required, invalid,max_value, min_value。
forms.py from django import forms class MessageBoard(forms.Form): <!--此时如果输入了一个不能转化为浮点类型的数值的话,就会报错--> price = forms.FloatField(error_messages={'invalid':'请输入正确的浮点型数值', 'required':'请一定要输入该字段的值'}) views.py: from django.views import View from django.http import HttpResponse from django.shortcuts import render, redirect, reverse class MessageBoard(View): def get(self, request): return render(request, 'index.html') def post(self, request): <!--实例化这样的一个form对象--> form = MessageBoard(request.POST) <!--判断form是否符合要求--> if form.is_valid(): price = form.cleaned_datda.get('price') <!--此时采用cleaned_data获取的数据如果是符合要求的is_valid(),就会转化为浮点型数据。--> return HttpResponse('success!') else: <!--打印出错误信息,按字典类型输出--> print(form.errors.get_json_data()) return HttpResponse('fail')
4.IntegerField: 用来验证数据是否为整型,验证过后会将这个字段的值转换为整型。
max_value:最大值。
min_value:最小值。
错误信息key: required, invalid,max_value,min_value。
5.URLField:用来接收url格式的字符串。
错误信息key:required,invalid。
person_website = forms.URLField(error_messages={'invalid':'请输入正确格式的个人网址!','required':'一定要输入网址'})
(1)在浏览器中输入http://guadn.com/,就可以正常访问。在Postman中自定义传入的字段,如果没有传入person_website,就会提示:{'person_website': [{'message': '一定要输入网址', 'code': 'required'}]}。
(2)如果你输入一个guyan.com的话,他也会自动将http://加上,如果你没有定义域名,比如输入“guyan”这样的话,就不能识别它是一个网址了。会提示相应的错误信息:{'person_website': [{'message': '请输入正确格式的个人网址!', 'code': 'invalid'}]}
来源:https://www.cnblogs.com/guyan-2020/p/12310561.html