119.用表单验证数据是否合法

常用的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 = MessageBoard(request.POST)
        
        if form.is_valid():
            price = form.cleaned_datda.get('price')

        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'}]}

你可能感兴趣的:(119.用表单验证数据是否合法)