Django forms组件与钩子函数】的更多相关文章

目录 一.多对多的三种创建方式 1. 全自动 2. 纯手撸(了解) 3. 半自动(强烈推荐) 二.forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组件渲染标签 4. 使用forms组件展示信息 5. 校验数据参数 5.1 报错信息修改:error_messages 5.2 校验器:Validator 5.3 给input框设置样式及属性:widget 5.4 input框默认值:initial 5.5 控制字段是否必填:required 5.6…
目录 一:Forms组件 1.案例需求: 2.前端 3.后端 二:form表单前后端动态交互 1.form组件 2.为什么数据效验非要去后端 不能在前端利用js直接完成呢? 3.举例:购物网站 三:基本使用 1.作用于校验型组件 2.校验数据 3.测试环境两种方式 四:渲染标签 1.后端(生成一个空对象) 2.前端利用空对象做操作 3.第一种渲染方式 4.第二种渲染方式 5.第三种渲染方式 6.label属性作用 五:展示提示信息 1.渲染错误信息 2.如何让浏览器不做校验 3.forms组件展…
内容 1 分页器基本使用 2 分页器终极用法 3 forms组件之校验字段 1 前端 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jque…
阅读简要 首先我们要明白Django forms组件里的ChoiceField.ModelChoiceField和ModelMutipleChoiceField是继承关系 ChoiceField 1. Django forms组件中ChoiceField字段是对models里choice的渲染 2. choices作用:在数据库中用元组的第一项作为存储的值,在显示时,将元组的第二项作为显示的内容,便于前端使用下拉框 3. 用get_xxxx_display()显示第二项的值 class Auth…
1.在新版本中,添加app是直接在settings设置中,将INSTALLED_APPS里添加app名字, 但是他的完整写法是   'app01.apps.App01Config'  因为新版本做了优化,所以直接写app名字也支持 2.form标签传输文件 form表单默认的编码格式是urlencoded不支持发文件(只能把文件名发过去)它所对应数据格式 username=jason&password=123 1.指定form提交的编码格式. 在form标签内添加  enctype="m…
目录 多对多三种创建方式 1.全自动(用ManyToManyField创建第三张表) 2.纯手写 3.半自动 form组件 引入 form组件的使用 forms组件渲染标签 form表单展示信息 form组件自定义校验 内置的校验器(RegexValidator) 钩子函数(HOOK) Django Form所有内置字段 多对多三种创建方式 1.全自动(用ManyToManyField创建第三张表) class Book(models.Model): title = models.CharFie…
forms组件最大的作用,就是做数据校验. 普通做法,一个一个写校验规则,没有解耦.校验规则,都在视图函数里面. 网页校验 修改urls.py,增加路径addbook from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), path('addbook/', views.addbook), ] 修改views.py,增加addbook视图函数,完整代码…
forms组件 本文目录 1 校验字段功能 2 渲染标签功能 3 渲染错误信息功能 4 组件的参数配置 5 局部钩子 6 全局钩子 回到目录 1 校验字段功能 针对一个实例:注册用户讲解. 模型:models.py class UserInfo(models.Model): name=models.CharField(max_length=32) pwd=models.CharField(max_length=32) email=models.EmailField( 模版文件 复制代码 <!DO…
# 全局钩子 def clean(self): pwd = self.cleaned_data.get("password") re_pwd = self.cleaned_data.get("re_password") if re_pwd and re_pwd == pwd: return self.cleaned_data else: self.add_error('re_password', "两次密码不一致") raise Validati…
引入: from django import forms 使用方法:定义规则,例: class UserForm(forms.Form): name=forms.CharField(max_length=32 email=forms.EmailField() 验证:forms = UserForm({"name":"alan","email":"123@qq.com"}) forms.is_valid()#验证信息,如果全正确…