zoukankan      html  css  js  c++  java
  • AJAX

    一、choice参数

    #用户表格
    class Userinfo(models.Model):    
    #字段    
    username = models.CharField(max_length=255)    
    choice = 
    (        
    (1,'早退'),        
    (2,'迟到'),        
    (3,'缺课'),              
    )    
    state = models.IntegerField(choices=choice)
    

    针对choice字段 如果你想获取数字所对应的中文 不能直接点字段

    固定句式

    print(数据对象.get_字段名_display())
    

    当没有对应关系的时候 该句式获取到的还是数字 没有意义

    不仅可以使用数字 也可以使用 英文 或者成绩分数代表 等级

        record_choices = (('checked', "已签到"),
                      ('vacate', "请假"),
                      ('late', "迟到"),
                      ('noshow', "缺勤"),
                      ('leave_early', "早退"),
                      )
        record = models.CharField("上课纪录", choices=record_choices, default="checked", 
    
     score_choices = ((100, 'A+'),
                     (90, 'A'),
                     (85, 'B+'),
                     (80, 'B'),
                     (70, 'B-'),
                     (60, 'C+'),
                     (50, 'C'),
                     (40, 'C-'),
                     (0, ' D'),
                     (-1, 'N/A'),
                     (-100, 'COPY'),
                     (-1000, 'FAIL'),
                     )
        score = models.IntegerField("本节成绩", choices=score_choices, default=-1)
    

    二、MTV与MVC模型

    MTV:

    ​ M: models

    ​ T: templates

    ​ V: views

    MVC:

    ​ M: models

    ​ V: views

    ​ C: con

    三、AJAX

    异步提交

    ​ 同步异步: 描述的任务的提交方式

    ​ 同步:提交任务之后 原地等待任务的返回结果 期间不干任何事

    ​ 异步:提交任务之后 不原地等待 直接执行下一行代码 任务的返回通过回调机制

    ​ 阻塞非阻塞:程序的运行状态

    Ajax是一门js的技术 基于原生的js开发的 但是用原生的JS写代码过于繁琐

    主要就是 JQuery实现AJAX

    AJAX 最大的有点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

    (这一特点给用户的感受是在不知不觉中完成请求和相应的过程)

    AJAX准备知识:json

    AJAX传json格式数据

    ​ django 后端对JSON格式的数据 不会自动帮你解析 会直接原封不懂的给你放到request.POST中

    你可以手动处理获得数据

    什么是json?

    • json指的是javascript对象表示法(JavaScript Object Notation)
    • JSON是轻量级的文本数据交互格式
    • JSON 独立于语言
    • JSON 具有自我描述性,更易理解

    JSON使用javascript 语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言

    						python 可以转换成JSON的数据类型
    							JSON			python
        
    							object			dict			
    							arary			list、tuple
    							string			str
    							number			int、float
    							ture			True
    							false			Flase
    							null			non'e
    

    CSRF(跨站请求伪造):

    使用AJAX发送post请求:

    第一种:

    $.ajax({
     url: "/cookie_ajax/",
     type: "POST",
     data: {
     "username": "Tonny",
     "password": 123456,
     "csrfmiddlewaretoken": $("[name = 'csrfmiddlewaretoken']").val() // 使用JQuery取出
    csrfmiddlewaretoken的值,拼接到data中
     },
     success: function (data) {
     console.log(data);
     }
    })
    
    

    第二种:用自己写的getCookie方法

    function getCookie(name) {
     var cookieValue = null;
     if (document.cookie && document.cookie !== '') {
     var cookies = document.cookie.split(';');
     for (var i = 0; i < cookies.length; i++) {
     var cookie = jQuery.trim(cookies[i]);
     // Does this cookie string begin with the name we want?
     if (cookie.substring(0, name.length + 1) === (name + '=')) {
     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
     break;
     }
     }
     }
     return cookieValue;
    }
    var csrftoken = getCookie('csrftoken');
    
    function csrfSafeMethod(method) {
     // these HTTP methods do not require CSRF protection
     return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }
    $.ajaxSetup({
     beforeSend: function (xhr, settings) {
     if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
     xhr.setRequestHeader("X-CSRFToken", csrftoken);
     }
    
    

    将下面的文件配置到你的Django项目的静态文件中,在html页面上通过导入该文件即可自动帮我们解决ajax提交post数据时校验csrf_token的问题,(导入该配置文件之前,需要先导入JQuery,因为这个配置文件内的内容是基于jQuery来实现的)

  • 相关阅读:
    java 实验五保存网页到本地
    Codeforces Round #485 (Div. 2)F. AND Graph
    算法设计分析实验三——贪心求最小生成树
    D. XOR-pyramid Codeforces Round #483 (Div. 2) dp
    C. Finite or not? Codeforces Round #483 (Div. 2)
    Educational Codeforces Round 44 F. Isomorphic Strings
    Educational Codeforces Round 44 (Rated for Div. 2)+E. Pencils and Boxes+树状数组
    BZOJ 1012 [JSOI2008]最大数maxnumber
    BZOJ 1207 [HNOI2004]打鼹鼠(简单dp)
    POJ 3067 Japan(树状数组求逆序对)
  • 原文地址:https://www.cnblogs.com/luodaoqi/p/11755525.html
Copyright © 2011-2022 走看看