Django 表单验证
Posted 在奋斗的大道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 表单验证相关的知识,希望对你有一定的参考价值。
Django 表单类简介:用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础Form对象 Form表单的功能:
1、自动生成html表单元素
2、检查表单数据的合法性(后端验证)
3、如果验证错误,重新显示表单(数据不会重置)
4、数据类型转换(字符类型的数据转换成相应的Python类型)
Django 表单一般实现步骤:
第一步:在models.py定义实体对象Book
from django.db import models
# Create your models here.
class Book(models.Model):
id = models.BigAutoField(primary_key=True)
name = models.CharField(max_length=255, null=True)
cover = models.CharField(max_length=255)
author = models.CharField(max_length=255)
price = models.DecimalField(decimal_places=2, max_digits=100000)
is_delete = models.IntegerField()
class Meta:
managed = False
db_table = 'book'
第二步:定义实体对象Book的表单验证对象BookForm
新建formValidation.py 文件,添加如下内容
from django import forms
from django.core.validators import ValidationError, RegexValidator
# Book 表单验证器
class BookFrom(forms.Form):
"""验证Book表单"""
name = forms.CharField(
required=True,
max_length=10,
min_length=2,
error_messages={
"required": "名称必填",
"max_length": "名称不能超过十位",
"min_length": "名称至少是两位"
})
author = forms.CharField(
required=True,
error_messages={
"required": "作者必填"
})
第三步:在views.py 文件中依赖自定义表单校验类
from userSystem.formValidation import BookFrom
在post 表单提交方法中,使用对应表单校验对象。
def insert(request):
# 获取参数,放入表单校验
book_form = BookFrom(request.POST)
# 判断校验是否成功
if book_form.is_valid(): # 验证成功
name = book_form.cleaned_data.get("name")
author = book_form.cleaned_data.get("author")
print("名称:%s 作者:%s" % (name, author))
return response_success(message="Django 实体表单验证成功")
else:
errorDict = book_form.errors
for key, value in errorDict.items():
print("属性:%s 错误信息:%s" % (key, value))
return response_success(message="Django 实体表单验证失败")
postman 模拟数据提交
以上是关于Django 表单验证的主要内容,如果未能解决你的问题,请参考以下文章
使用Ajax验证并提交Django表单(django-crispy-forms)