zoukankan      html  css  js  c++  java
  • Django Form -- 插件的使用

    Django Form的三个关键要素:

    • 模板类 -- 提供生成前台表单的字段、并根据这些字段来验证用户的表单数据
    from django import forms
    
    class LoginForm(forms.Form):
        username = forms.CharField(min_length=3, error_messages={"required": '用户名不能为空', 'min_length': '用户名长度不能小于3'})
        email = forms.EmailField(error_messages={"required": '邮箱不能为空', 'invalid': '邮箱格式错误'})
    obj = LoginForm(request.POST)
    
    • 字段 -- 模板类中定义的具体字段类型,用于生成前台表单的html标签,并实现对用户表单数据的验证
        username = forms.CharField()
        email = forms.EmailField()
    

       CharField是forms下的一个类,CharField这个类内部封装了验证的规则,当调用obj.is_valid()时,会将模板中的字段遍历一遍,逐个进行数据校验,如果都正确,则返回True

      CharField类实际是写在forms目录下的fields.py文件中,所以在具体使用的时候可以这样引用:from django.forms import fields

    • 插件 -- 实现对字段的功能扩展
      • 自定义CharField字段的类型 
    from django import forms
    from django.forms import fields
    from django.forms import widgets
    
    class DetailForm(forms.Form):
        #通过插件widgets,将CharField默认的TextInput字段类型变为PasswordInput字段类型
        pwd = fields.CharField(widget=widgets.PasswordInput)
    
      • 自定义字段的属性
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
        input.intro {color:blue;}
    </style>
    </head>
    <body>
        {{ obj.name }}
    </body>
    </html>
    
    from django import forms
    from django.forms import fields
    from django.forms import widgets
    
    class DetailForm(forms.Form):
        #通过attrs参数,添加样式、placeholder等
        name = fields.CharField(widget=widgets.TextInput(attrs={'placeholder': '用户名', 'class': 'intro' }))
    

    前端页面展示效果:

        

  • 相关阅读:
    Ext.window.Window在IE有部分半透明的问题
    匹配用户名的正则表达式
    PHP超时处理全面总结
    Extjs4 actioncolumn只能显示图标,不能显示文字的暂时解决方法
    SQL语句
    SQL Server 日期和时间函数
    asp.net 2.0中一次性更新所有GRIDVIEW的记录
    如何生成静态页面的五种方案[转]
    SQL IF..ELSE..在存储过程的使用规范
    数据库操作语句小结
  • 原文地址:https://www.cnblogs.com/dongmengze/p/9816017.html
Copyright © 2011-2022 走看看