zoukankan      html  css  js  c++  java
  • 43.django中form组件

    form组件的主要功能如下:
    1.生成页面可用的HTML标签
    2.对用户提交的数据进行校验
    3.保留上次输入内容
    使用form组建就能完成1.生成HTML代码2.数据有效性校验3校验信息返回并展示
    

    form组件的用法

    1. from django import forms
    2, 定义一个form类
       class RegForm(forms.Form):
          user = forms.CharField()
          pwd = forms.CharField()
          email = forms.EmailField()
    生成HTML:
       3. 实例化一个form对象, 传递到html模板中
       4. 在模板中调用form对象的响应方法和属性
       方式:
          1. {{ obj.as_p }}
          2. 单独写
             {{ obj.pwd.label }}
             {{ obj.pwd }}
    做校验:
       1. obj = RegForm(request.POST)
       2. obj.is_valid()
    

    form中常用的字段和插件

    #创建Form类时,主要涉及到 【字段】 和 【插件】,字段用于对用户#请求数据的验证,插件用于自动生成HTML;
    class LoginForm(forms.Form):
        username = forms.CharField(
            min_length=8,
            label="用户名",
            initial="张三"  # 设置默认值
            error_messages={
                 "required": "该字段不能为空",
                 "min_length": "用户名不能少于6位",
            },
            widget=forms.widgets.TextInput(attrs={"class": "use"})
        )
        pwd = forms.CharField(min_length=6, label="密码") #密码显示明文
        pwd = forms.CharField(min_length=6,label="密码",
            widget=forms.widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True)
        )
        
    '''
    1.required=Ture 是否可以为空
    2.label 输入框前面的内容,对输入框的描述
    3.initial 输入框中的默认值
    4.error_messages 定义错误信息,由于可定义多个,在html页面调用时使用errors,常用form_obj.username.errors.0取索引
    5.widgte  HTML插件要使用forms.widgets模块,其中attrs的值为字典,定义一个属性,便于设置样式
    6.forms.widgets.PasswordInput将密码显示为密文。render_value=True保存原来填写的密码
    7.help_text='帮助信息', #帮助信息(在标签旁边显示)
    8.disabled = False, # 是否可以编辑
    '''
    

    form校验

    def login(request):
        if request.method == 'GET':
            obj = LoginForm()
            return render(request, "login.html", {"obj":obj})
        else:
            # username = request.POST.get('username')
            # pwd = request.POST.get('pwd')
            obj = LoginForm(request.POST) ## {"username":'xx', 'pwd':'xx'}
            if obj.is_valid():
                print(obj.cleaned_data) ## 对象
            else:
                print(obj.errors) ### 对象 __str__
    
            return render(request, "login.html", {'obj':obj})
            
        
    '''
    在获取登录信息校验时:
    obj.is_valid() 是True表示所有字段都通过校验
    obj.cleaned_data:是一个字典,所有通过校验的数据放在里面
    obj.errors:是一个字典,所有的错误字段的信息
    '''
    
  • 相关阅读:
    c中uint32转为string
    linux中查找某类文件中的特定字符串
    VMWare Workstation 无法连接外部设备
    Evernote(印象笔记)无法登录的问题
    Python request 在linux上持续并发发送HTTP请求遇到 Failed to establish a new connection: [Errno 11] Resource temporarily unavailable
    设计模式
    jquery-ui sortable 在拖动换位置时改变元素的大小导致占位与实际不一致
    Appium IOS 使用多模拟器并发执行测试
    Fiddler脚本修改Response数据
    android style和attr的用法
  • 原文地址:https://www.cnblogs.com/yellowcloud/p/11383971.html
Copyright © 2011-2022 走看看