码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-11-16 22:09:50      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:max   用户   .com   form表单   aaaaa   int   print   use   article   

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

 

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

标签:max   用户   .com   form表单   aaaaa   int   print   use   article   

原文地址:http://www.cnblogs.com/liuzhipenglove/p/7846260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!