day19-form表单

1.

form组件的主要功能如下:

  • 生成页面可用的HTML标签
  • 对用户提交的数据进行校验
  • 保留上次输入内容
    1. Django Admin的简单用法:
            1. 创建管理员账号
                python3 manage.py createsuperuser
            2. 在admin注册我们的表
                在app目录下面的admin.py里面按以下语法注册
                admin.site.register(models.类名)
            3. 其他配置项
                1. admin页面显示中文
                    settings.py中修改LANGUAGE_CODE = 'zh-hans'
                2. 表名显示中文
                    类下面写如下配置项
                        class Meta:
                            verbose_name = "出版社"
                            verbose_name_plural = verbose_name
                3. 字段显示中文
                    address = models.TextField(verbose_name="出版社地址")        
        2. form
            1. form的作用
                1. 生成HTML代码
                2. 帮我们做数据有效性的校验
                3. 保留上次输入内容,显示错误提示
        
            2. form组件生成html代码

            3. form组件校验数据有效性
                1. 内置的校验规则
                    1. require=True    该字段必填
                    2. max_length      该字段的最大长度
                    3. min_length      该字段的最小长度
                    
                2. 自定义校验规则
                    1. phone的格式 利用内置的正则校验器
                        from django.core.validators import RegexValidator
                        validators=[RegexValidator(r'^1[356789]\d{9}$', "手机号码格式不正确")],
                    2. 手机号的唯一性校验
                        手写一个校验函数
                    
                3. 使用钩子函数做校验
                    1. 局部钩子(hook)
                        在form类内部定义一个 clean_字段名() 方法
                        
                    2. 全局钩子
                        在form类内部定义一个 clean() 方法 
            4. form组合如何给html标签设置默认值
                1. 每一个字段设置默认值
                    initial="默认值"            
        3. model form
            1. 必须继承forms.ModelForm

            2. class Meta:
                model = "一对一关联的model类名"
                fields = "__all__"
            3. 实例化
                1. BookModelForm(instance=book_obj)
                2. BookModelForm(request.POST, instance=book_obj)
            4. form_obj.save()
View Code

猜你喜欢

转载自www.cnblogs.com/lijie123/p/9551117.html