数据校验

Cause: java.sql.SQLException: DAY_OF_MONTH

匿名 (未验证) 提交于 2019-12-02 21:42:56
Cause: java.sql.SQLException: DAY_OF_MONTH ; DAY_OF_MONTH; nested exception is java.sql.SQLException: DAY_OF_MONTH] with root cause 原因:数据库的日期数据不对,原来为“2019-06-00”,后来改为正确的日期格式。 引申:数据库本身工具并没有识别这个错误,即并没有对填入的值做校验,但是MyBatisPlus做了这个日期转换校验。 文章来源: https://blog.csdn.net/yunxuantu/article/details/92072160

Django-分页-form数据校验

孤街浪徒 提交于 2019-12-02 20:11:37
分页 view层 def fenye(request): all_data = models.AuthorDetail.objects.all() current_page = request.GET.get('page',1) count = all_data.count() page_obj = Pagination(current_page=current_page,all_count=count) data = all_data[page_obj.start:page_obj.end] return render(request,'fenye.html',locals()) 模板层 {% for a in data %} <p>{{ a.addr }}</p> {% endfor %} {{ page_obj.page_html|safe }} 自定义分页器 class Pagination(object): def __init__(self, current_page, all_count, per_page_num=10, pager_count=11): """ 封装分页相关数据 :param current_page: 当前页 :param all_count: 数据库中的数据总条数 :param per_page_num: 每页显示的数据条数 :param

form校验组件

♀尐吖头ヾ 提交于 2019-12-02 20:10:44
form校验组件 导包: from django import forms from django.forms import widgets 定义类: class MyForm(forms.Form): username = forms.CharField(min_length=3, max_length=8, label='用户名:', error_messages={ 'min_length': '最少3位', 'max_length': '最多8位', 'required': '用户名不可以为空' }, widget=widgets.TextInput(attrs={'class': 'form-control'})) # 可以添加样式 password = forms.CharField(min_length=3, max_length=8, label='密码:', error_messages={ 'min_length': '最少3位', 'max_length': '最多8位', 'required': '密码不可以为空' }, widget=widgets.PasswordInput(attrs={'class': 'form-control'})) email = forms.EmailField(error_messages={ 'required':

django之分页器、多对多关系、form校验组件

只谈情不闲聊 提交于 2019-12-02 20:04:19
自定义分页器 ''' 思路: 首先一个大概思路是在后端把逻辑写完之后,再在前端把数据展示出来。 1.从前端(用户点击按钮,get请求),获取用户想要访问的页面数(拿到的是字符串,需要转成int类型,后面做运算) 2.规定每页展示的数据条数 3.规定展示的起始页和终止页 4.统计数据的总条数(从数据库拿到全部数据,count一下) 5.通过一定的数学计算,判断数据要多少页才能展示完(取余数) 6.所有计算完成后,对数据对象列表进行切片操作,然后发到前端进行展示。 ''' #view.py def index(request): # 1.获取用户想要访问的页码数 current_page = request.GET.get('page',1) # 如果没有page参数 默认就展示第一页 # 转成整型 current_page = int(current_page) # 2.每页展示10条数据 per_page_num = 10 # 3.定义起始位置和终止位置 start_page = (current_page - 1) * per_page_num end_page = current_page * per_page_num # 4.统计数据的总条数 book_queryset = models.Book.objects.all() all_count = book_queryset

Django-6

一世执手 提交于 2019-12-02 20:01:12
目录 Django-6 在表中批量新增记录的两种方式 第一种 第二种(bulk_create) 自定义简易分页器 利用封装好的分页器 创建多对多表关系的三种方式 全自动(***) 纯手动(*) 半自动 Form组件 不用form组件指定input输入规范 form组件的使用 form组件钩子函数 form组件的其它字段 Django-6 在表中批量新增记录的两种方式 第一种 def add_msg(request): for i in range(1000): models.Book.objects.create(title='第%s本书'%i) return HttpResponse('数据全部插入成功!') ''' 这种插入方式每次插入时都访问一次数据库,并且在数据表中新增记录的时间本来就过长,当批量新增记录条数过多时,往往延迟过高,并且频繁访问数据库会造成数据压力过大,效率极低,所以不推荐使用。 ''' 第二种(bulk_create) def add_msg(request): book_list = [] for i in range(100000): book_list.append(models.Book('title'=''第%s本书'%i')) models.Book.objects.bulk_create(book_list) '''

django之forms模块实现数据校验

眉间皱痕 提交于 2019-12-02 20:01:08
批量插入数据 bulk_create 1.往书籍表中插入数据 1000 for i in range(1000): # 这种插入方式 效率极低 models.Book.objects.create(title='第%s本书'%i) book_list = [] for i in range(100000): # 时间还是很短 两者差距很大 book_list.append(models.Book(title='第%s本书'%i)) models.Book.objects.bulk_create(book_list) # 批量插入数据 # 2.将刚刚插入的数据查询出来展示到前端 book_queryset = models.Book.objects.all() return render(request,'index.html',locals()) 自定义分页器 自定义分页器的推倒 在views.py文件中 def index(request): # 1.获取用户想要访问的页码数 current_page = request.GET.get('page',1) # 如果没有page参数 默认就展示第一页 # 转成整型 current_page = int(current_page) # 2.每页展示10条数据 per_page_num = 10 # 3.定义起始位置和终止位置

form组件

前提是你 提交于 2019-12-02 19:59:51
目录 Form介绍 form组件的作用 自定义form校验 简单的form校验组件 form组件的使用 如何校验数据 如何渲染页面 渲染方式1 渲染方式2 渲染方式3(推荐使用) form组件的校验 如何展示错误信息 展示中文错误信息 Hook方法(钩子方法) 局部钩子 全局钩子 普通方式手写注册功能 views.py login.html 使用form组件实现注册功能 views.py login2.html Form那些事儿 常用字段与插件 initial error_messages password radioSelect 单选Select 多选Select 单选checkbox 多选checkbox choice字段注意事项 Django Form所有内置字段 字段校验(正则) RegexValidator验证器 自定义验证函数 补充进阶 应用Bootstrap样式 批量添加样式 ModelForm modelForm定义 class Meta下常用参数: ModelForm的验证 save()方法 Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确

分页器,form组件的使用

蹲街弑〆低调 提交于 2019-12-02 19:57:05
批量插入数据 bulk_create # 1.往书籍表中插入数据 1000 # for i in range(1000): # 这种插入方式 效率极低 # models.Book.objects.create(title='第%s本书'%i) book_list = [] for i in range(100000): # 时间还是很短 两者差距很大 book_list.append(models.Book(title='第%s本书'%i)) models.Book.objects.bulk_create(book_list) # 批量插入数据 # 2.将刚刚插入的数据查询出来展示到前端 book_queryset = models.Book.objects.all() return render(request,'index.html',locals()) 自定义分页器 重点在于推到思路 代码你可以不掌握 自定义分页器的使用 新建一个py文件将代码直接拷贝过去 后端 from app01.utils.mypage import Pagination # 使用封装好的分页器代码 def login(request): book_queryset = models.Book.objects.all() current_page = request.GET.get('page',1)

伍拾 --- 自定义分页器form组件

允我心安 提交于 2019-12-02 19:56:58
自定义分页器及form组件 一、批量插入数据 ​ 插入数据有两种方式,一种方法是直接插入,另一种是批量插入(使用bulk_create): def book(request): # 1.向图书列表插入1000本图书(效率低) for i in range(1000): models.Book.objects.create(title='第%s本书'%i) # 2.向图书列表插入10000000本图书(速度快于第一种的1000本) book_lsit = [] for i in range(10000000) book_list.append(models.Book(title='第%s本书'%i) models.Book.objects.bulk_create(book_list) # 展示到前端 book_queryset = models.Book.objects.all() return render(request,'book.html',locals()) 二、自定义分页器 2.1 自定义分页器逻辑 def index(request): # 1.获取用户想要访问的页码数 current_page = request.GET.get('page', 1) #没参数默认第一页 # 转为整形 current_page = int(current_page) # 2

Django之form组件

时光怂恿深爱的人放手 提交于 2019-12-02 19:53:15
批量插入数据 我们在通过Django中的ORM向数据库插入多条数据的时候,可以有两种方法 #models class Book(models.Model): name = models.CharField(max_length=32) #views第一种方法(这种插入方式,效率极低,从插入1000条数据也要1分多钟) def index(request): for i in range(1000): models.Book.objects.create(name='第%s本书'%i) book_queryset = models.Book.objects.all() return render(request,'index.html',locals()) #views第二种方式(相较于第一种速度快上很多) def index(request): book_list=[] for i in range(100000): book_list.append(models.Book(title='第%s本书'%i)) models.Book.objects.bulk_create(book_list) book_queryset = models.Book.objects.all() return render(request,'index.html',locals()) 自定义分页器