http://www.cnblogs.com/wupeiqi/articles/6144178.html

1 初始Form组件

# Form验证(初始Form组件验证)
- 问题:
- 无法记住上次提交的内容,页面刷新数据消失
- 重复进行提交数据的校验(数据是否为空,长度大小等等) - 解决方法:django Form组件
- 定义规则(数据的格式,字段必须和表单上name属性一致)
class LoginForm(Form):
实例化对象obj = LoginForm(request.POST) - 数据检验
obj.is_valid() - 提供详细错误信息(可以自定制错误提示)
-- 自定制错误信息,在类定义的时候通过error_messages参数
obj.errors - 提供符合规则的信息(类型是字典,数据库orm操作支持类型是字典操作)
obj.cleaned_data - Form实例:
a.定义规则
from django.forms import Form, fields
class LoginForm(Form):
# 定义规则,fields是正则验证
# usernma和password必须和前端模板Form里面input的name一致
username = fields.CharField(required=True, max_length=16, min_length=6,
error_messages={
'required': '不能为空',
'max_length': '长度必须少于16',
'min_length': '长度必须大于6'
})
password = fields.CharField(required=True, min_length=8,
error_messages={
'required': '不能为空',
'min_length': '长度必须大于8'
})
b.使用
def login(request):
if request.method == 'GET':
return render(request, 'login.html')
else:
obj = LoginForm(request.POST)
# 检验提交数据是否符合规则
if obj.is_valid():
print(obj.cleaned_data)
# obj.cleaned_data是一个字典,form表单提交的数据
#{'password': 'aaaaaaaaaa', 'username': 'alexadfdda'}
return redirect('http://www.baidu.com')
else:
return render(request, 'login.html', {'error': obj.errors}) # 作业(登录,注册)最终版
- 保留上次输入的值
- 用户数据格式的验证

最新文章

  1. Markdown 新手指南
  2. jQuery总结(2016-7-4)
  3. ZendGuardLoader安装
  4. C++开源大全
  5. C++中的静态绑定和动态绑定
  6. Monyer.cn黑客小游戏
  7. [CareerCup] 14.1 Private Constructor 私有构建函数
  8. Data Flow ->> Raw File Source & Raw File Destination
  9. 容器 list
  10. Java常用类(四)之数组工具类Arrays
  11. Linux 桌面玩家指南:04. Linux 桌面系统字体配置要略
  12. 在Centos中安装mysql
  13. Map<String,Integer>acount字符串出现的次数
  14. python语法_while循环_for循环
  15. mysqlbinlog恢复数据注意事项【转】
  16. Tomcat增加虚拟内存(转)
  17. Python——列表深浅拷贝
  18. restfull和传统http的区别
  19. QGis C++ 开发之创建临时图层并添加要素
  20. delete obj$

热门文章

  1. spark集群配置细则总结
  2. java基础编程——树的子结构
  3. jQuery Pagination分页插件--刷新
  4. C#的接口基础教程之四 访问接口
  5. sendmail安装与配置
  6. Centos 6版本Device eth0 does not seem to be present,delaying initialization.故障处理
  7. Tesseract-ocr视觉学习-验证码识别及python import pytesseract使用
  8. iOS SDK中使用NSXMLParser解析XML(iphone网络篇三)
  9. Green Space【绿色空间】
  10. python数据模型(特殊方法)