zoukankan      html  css  js  c++  java
  • form 组件

    Form组件

    - 对用户请求的验证
    - AJax
    - Form
    - 生成HTML代码

    a. 创建一个类
    b. 类中创建字段(包含正则表达式)
    c. GET
    obj = Fr()
    obj.user = > 自动生成HTML

    d. POST
    obj = Fr(request.POST)
    if obj.is_valid():
    obj.cleaned_data
    else:
    obj.errors
    return .... obj

    实例:

      

     1 from django.shortcuts import render
     2 
     3 # Create your views here.
     4 #1> 导入相应的模块
     5 from django import forms
     6 from django.forms import fields
     7 
     8 #2》 定义好类 里面的属性应是是name的值 并且 设定好限制 和错误信息  注意所有的格
     9 #式错误都应该invalid 字段来设置相应的错误
    10 class Form_f1(forms.Form):
    11     user = fields.CharField(max_length=5,min_length=2,required=True,
    12                             error_messages={'max_length':'最大值为5',
    13                                             'min_length':'最小值为2',
    14                                             'required':'这里为必填',
    15                                             'invalid': '格式错误'
    16                                             }
    17                             )
    18     age = fields.IntegerField(max_value=100,min_value= 0,required=True,
    19                               error_messages={
    20                                   'max_value':'最大值为100',
    21                                   'min_value':'最小值为0',
    22                                   'required':'不能为空',
    23                                   'invalid': '格式错误'
    24                               }
    25                               )
    26     email= fields.EmailField(required=True,
    27                              error_messages={
    28                                  'required':'不能为空',
    29                                  'invalid':'格式错误'
    30                              }
    31                              )
    32 #url处理方法
    33 def from_f1(request):
    34     if request.method == 'GET':
    35         obj = Form_f1() #传实例的对象到前端可以 .属性  , 自动生成name为属性的input标签
    36         return render(request,'form_f1.html',{'obj':obj})
    37     elif request.method == 'POST':
    38         #实例化出来的时候把post传过来的数当参数统一传进去
    39         obj = Form_f1(request.POST)
    40         #验证是否成功
    41         if obj.is_valid():
    42             #获取验证成功的字段信息
    43             print(obj.cleaned_data)
    44         else:
    45             #获取验证失败的错误信息
    46             print(obj.errors)
    47         return render(request,'form_f1.html',{'obj':obj})

    html页面书写:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>表单验证及错识信息</title>
     6 </head>
     7 <body>
     8 <form action="from_f1.html" method="post" novalidate> 
     9 {#    obj.user是get的时候传过来的#}
    10     <p>{{ obj.user }} <span>{{ obj.errors.user.0 }}</span></p>
    11     <p>{{ obj.age }}<span>{{ obj.errors.age.0}}</span></p>
    12     <p>{{ obj.email }}<span>{{ obj.errors.email.0 }}</span></p>
    13     <p><input type="submit" value="提交"></p>
    14 
    15 </form>
    16 
    17 </body>
    18 </html>

    注意:form表单里添加novalidate 可以阻止浏览器报错 而显示我们自已设定的报错信息

    小技巧 : 我们在验证的时候可以直接request.POST把用户提交的数据在实例化的时候传进去做验证

        我们可以在实例化的时候传一个字典来设定相应key键的默认值   例: obj =  UserForm({'username':'小王','age' = 25})

  • 相关阅读:
    阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
    阿里云服务器Linux CentOS安装配置(三)yum安装mysql
    阿里云服务器Linux CentOS安装配置(二)yum安装svn
    【搭建git+maven+jenkins持续集成环境】[一] 搭建git服务器
    使用nginx的反向代理后play获取不到客户端的ip的问题
    MyBatis Generator配置文件翻译
    MyBatis -generator应用
    编程之术与道
    java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
  • 原文地址:https://www.cnblogs.com/qq769080870/p/8920365.html
Copyright © 2011-2022 走看看