• [oldboy-django][2深入django]初始Form组件


    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})
    
    # 作业(登录,注册)最终版
        - 保留上次输入的值
        - 用户数据格式的验证
    View Code
  • 相关阅读:
    XML文件处理
    前端技术学习路线及技术汇总
    Install wget for mac
    AT&T Assembly for Linux and Mac (sys_write)
    AT&T Assembly for Linux and Mac (sys_exit)
    [leetCode]5. 最长回文子串(DP)
    [深入理解JVM虚拟机]第3章-垃圾收集器、内存分配策略
    [深入理解JVM虚拟机]第2章-Java内存区域与内存溢出异常
    [LeetCode]695. 岛屿的最大面积(DFS/BFS)、200. 岛屿数量(DFS/BFS待做/并差集待做)
    [LeetCode]415. 字符串相加
  • 原文地址:https://www.cnblogs.com/liuzhipenglove/p/7846260.html
Copyright © 2020-2023  润新知