Django之组件--forms
forms组件(详细)
功能:
1 校验字段功能
2 渲染标签功能
3 渲染错误信息功能
4 组件的参数配置
5 局部钩子
6 全局钩子
类中使用:
1.定义
from django import forms
from django.forms import widgets
from django.core.exceptions import ValidationError
2.写一个类
3.写属性
class RegForm(forms.Form):
name=forms.CharField(max_length=8,min_length=3,label='用户名',error_messages={'max_length':'超长了'},
widget=widgets.TextInput(attrs={'class':'form-control'})
4.局部钩子函数
def clean_name(self):
name=self.cleaned_data.get('name')
if name.startswith('sb'):
raise ValidationError('不能以sb开头')
else:
# 切记,如果正确,一定要返回name
return name
5.全局钩子函数
def clean(self):
#一系列逻辑判断
#如果校验通过:返回cleaned_data
#如果校验不通过:raise ValidationError('两次密码不一致'),错误放到__all__
pass
views中使用:
def test(request):
if request.method=='GET':
regform=RegForm()
else:
regform=RegForm(request.POST)
if regform.is_valid():
#一般情况需要存数据库了
pass
else:
error_all=regform.errors.get('__all__')
# error_all=regform.errors['__all__']
return render(request,'register.html',locals())
模板中使用:
<form action="">
{% for foo in regform %}
{{ foo.label }}:{{ foo }} <span>{{ foo.errors.0 }}</span>
{% endfor %}
<input type="submit"> <span>{{ error_all }}</span>
</form>
Django之组件--forms的更多相关文章
- python 全栈开发,Day78(Django组件-forms组件)
一.Django组件-forms组件 forms组件 django中的Form组件有以下几个功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显 ...
- django第13天(auth组件,forms组件,中间件,csrf)
django第13天(auth组件,forms组件) auth组件 -auth组件 -auth是什么? -django内置的用户认证系统,可以快速的实现,登录,注销,修改密码.... -怎么用? -( ...
- Django框架的forms组件与一些补充
目录 一.多对多的三种创建方式 1. 全自动 2. 纯手撸(了解) 3. 半自动(强烈推荐) 二.forms组件 1. 如何使用forms组件 2. 使用forms组件校验数据 3. 使用forms组 ...
- [Django高级之forms组件]
[Django高级之forms组件] forms组件之校验字段 # 第一步:定义一个类,继承forms.Form # 第二步:在类中写字段,要校验的字段,字段属性就是校验规则 # 第三步:实例化得到一 ...
- django中的forms组件
form介绍 用户需要向后端提交一些数据时,我们常常把这些数据放在一个form表单里,采用form标签,里面包含一些input等标签把用户的数据提交给后端. 在给后端提交数据的时候,我们常常也需要对于 ...
- Django admin 组件 原理分析与扩展使用 之 sites.py (一)
一 . 前言 Django 提供了admin 组件 为项目提供基本的管理后台功能(对数据表的增删改查). 本篇文章通过 admin源码 简单分析admin 内部原理 ,扩展使用方式,为以后进行定制和自 ...
- django Form组件
django Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建 ...
- 9.24 Django Form组件
2018-9-23 20:10:04 这两天优化了自己图书管理系统 github 连接:https://github.com/TrueNewBee/pythonDemo 顺便整理了博客,写了好多总结, ...
- Django—Form组件
Django From简介 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比 ...
随机推荐
- A/B HDU - 1576 (exgcd)
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input数据的第一行是一个T,表示有T组数据. 每组数据有两 ...
- Linux mount BSD disk partition
Linux mount BSD disk partition 来源 https://www.cnblogs.com/jhcelue/p/6858159.html 假设须要从第二块硬盘复制文件.该硬盘格 ...
- npm 常规错误
Unexpected end of JSON input while parsing near 意外结束.JSON解析期间 解决办法: npm cache clean --force 解释:Force ...
- MT【312】特征根法求数列通项
(2016清华自招领军计划37题改编) 设数列$\{a_n\}$满足$a_1=5,a_2=13,a_{n+2}=\dfrac{a^2_{n+1}+6^n}{a_n}$则下面不正确的是( )A ...
- neutron相关知识
Neutron 对虚拟三层网络的实现是通过其 L3 Agent (neutron-l3-agent).该 Agent 利用 Linux IP 栈.route 和 iptables 来实现内网内不同网络 ...
- 【原创】【状态压缩DP】POJ3254 Corn Fields【新手向】
一开始根本不会状压dp,上网各种找题解,但发现他们写的都很......反正我作为一个没有接触过状态压缩的,根本看不懂! 然后看了好多状态压缩的题的题解,总结了一下思路,思路很重要,有了思路转换成计算机 ...
- 老铁,告别postman,用pycharm来调接口,顺便把接口脚本也写了
最近,一位同事在用postman调涉及到依赖的接口的时候 postman设置了环境变量,但是老是获取不到依赖接口返回的值,至于的啥原因呢,@#¥%……&*()! 其实,用pycharm一样可以 ...
- 阿里云 docker连接总报超时 registry.cn-hangzhou.aliyuncs.com (Client.Timeout exceeded while awaiting headers
Error response from daemon: Get https://registry.cn-hangzhou.aliyuncs.com/v2/: net/http: request can ...
- 逗号分隔的字符串与List互转
将逗号分隔的字符串转换为List // 将逗号分隔的字符串转换为List String str = "a,b,c"; // 1.使用JDK,逗号分隔的字符串-->数组--&g ...
- A1004. Counting Leaves
A family hierarchy is usually presented by a pedigree tree. Your job is to count those family member ...