第四十七章:forn组件

第四十七章:forn组件Ajax发送json格式数据$.ajax({url:'',//不写默认朝当前页面所在的url地址提交type:'post',contentType:'application/json',data:JSON.stringify({'

大家好,欢迎来到IT知识分享网。第四十七章:forn组件

Ajax发送json格式数据

  $.ajax({

            url:”,  // 不写默认朝当前页面所在的url地址提交

            type:’post’,

            contentType:’application/json’,

            data:JSON.stringify({‘name’:’jason’,’csrfmiddlewaretoken’:'{{ csrf_token }}’}),

            success:function (data) {

                alert(data)

            }

        })

 

Ajax发送文件

 $(‘#d1’).click(function () {

        // 如果用ajax发送文件 需要使用内置对象FormData

        var formData = new FormData();  // 生成一个内置对象

        // 内置对象formdata既可以传普通的键值对,也可以传文件

        formData.append(‘name’,’jason’);  // 普通键值对

        formData.append(‘password’,’123′);

        // 传文件

        var fileObj = $(‘#d2’)[0].files[0];  // 先获取标签对象 转成原生js对象 通过内置的files方法拿到列表 然后去索引0拿到文件对象

        formData.append(‘myfile’,fileObj);

        $.ajax({

            url:”,  // 不写默认朝当前页面所在的url地址提交

            type:’post’,

            // 注意ajax在发送文件的时候 需要你手动指定两个特殊的参数

   

   

            contentType:false,  // 不要用任何编码 使用我formdata自带的编码即可

            processData:false,  // 浏览器不要处理我的数据 是什么就什么

   
            data:formData,

            success:function (data) {

                alert(data)

            }
        })

    })

 

 
 

 

 

 

注册示例

 获取用户输入 后端判断用户输入的内容是否合法

 如果不合法前端渲染对应的错误信息

 

forms组件

 1.前端渲染展示页面 获取用户输入      >>> 渲染页面

 2.将数据发送给后端进行数据的合法性校验  >>> 数据校验

 3.将不合法的提示信息展示给用户看    >>> 展示提示信息
 关于数据的校验

  1.前端

  2.后端

  数据的校验前端可以没有,但是后端一定要做!!!

  

 

 

 

 forms组件能够帮你完成上面的三个过程

  1.校验数据

   forms组件的校验数据的使用

   1.定义一个继承forms.Form一个类

    from django import forms

    class MyForm(forms.Form):

     username = forms.CharField(max_length=6)  # username最长只能是6位

     password = forms.CharField(max_length=8,min_length=3)  # password最长8位 最短3位

     email = forms.EmailField()  # email接受的数据必须符合邮箱格式

   2.给forms组件传参数 (字典的显示)

    obj = views.MyForm({‘username’:’egondsb’,’password’:’12’,’email’:’123@qq.com’})

   3.查看数据是否完全合法

    obj.is_valid()

   4.查看所有校验通过的数据

    obj.cleaned_data

    {’email’: ‘123@qq.com’}

   5.查看所有没有通过的数据

    obj.errors

    “””

    {

     ‘username’: [‘Ensure this value has at most 6 characters (it has 7).’],

     ‘password’: [‘Ensure this value has at least 3 characters (it has 2).’]}

    “””

  2.渲染标签

   forms组件只能帮你渲染 获取用户输入(输入框 选择框 下拉框…)的标签

   提交按钮也得自己写

   

   form表单取消前端校验功能

    <form action=”” method=”post” novalidate>

   

   forms组件当前端输入的信息不合法的时候 页面上的数据保留不会刷新  这样方便用户修改

   

  3.展示提示信息

   {% for foo in form_obj %}

            <p>

                {{ foo.label }}{{ foo }}

                <span>{{ foo.errors.0 }}</span>

            </p>

   {% endfor %}

  

  

  

  

 forms组件的钩子函数

  局部钩子

  全局钩子

  # 局部钩子

  def clean_username(self):

   # 用户名中不能有666

   username = self.cleaned_data.get(‘username’)

   if ‘666’ in username:

    self.add_error(‘username’,’光喊666是不行的’)

   return username

  

  # 全局钩子

  def clean(self):

   # 获取密码和确认密码比对

   password = self.cleaned_data.get(‘password’)

   confirm_password = self.cleaned_data.get(‘confirm_password’)

   if not password == confirm_password:

    self.add_error(‘confirm_password’,’两次密码不一致’)

   return self.cleaned_data

  

  

  

 

 

 

 

 

 django中测试脚本书写

 import os

 import sys
 if __name__ == “__main__”:

  os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “day66.settings”)

  import django

  django.setup()

   

  from app01 import models

  print(models.Userinfo.objects.all())

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31437.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信