查询续与ajax

查询分组

事例:统计不止一个作者的图书:(作者数量大于一)
Book.objects.all().values('name').annotate(author_num=Count('authors__name')).
    filter(author_num__gt=1).values('name','author_num')
    
总结:valu再annotate前,代表group by 的字段,不写value,默认以基表的主键做group by 
在后代表我要select出来的字段
#filter在前,代指where的东西,在后,代表having 的东西

ajax应用:

什么是Ajax

AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。

优点:

  • AJAX使用Javascript技术向服务器发送异步请求
  • AJAX无须刷新整个页面
1 基本应用:
	 $.ajax({
        url:'/ajax_next/',
        type:'get',
        data:{'n1':n1,'n2':n2},
        success:function (data) {
            alert(data)
            $("#sum").val(data)

        }
    })
    views中在get中取出
    
2 提交json数据
	 $('#btn').click(function () {
        let name = $('[name="name"]').val();
        let password = $('[name="pwd"]').val();
        let ss=JSON.stringify({'name':name,'pwd':password});
        let a = JSON.parse(ss);  # json反解,在这里没有用
        $.ajax({
            url:'/test/',
            method:'post',
            contentType:'application/json',
            data:ss,
            success:function (date) {
                alert(date)
            }
        })
    })
	views中需要自己从body取出来,后续处理
	
3 上传文件:
	$(".btn").click(function () {
        var formdata=new FormData();
        console.log(typeof formdata);
        formdata.append('name',$('[name="name"]').val());
        formdata.append('pwd',$('[name="pwd"]').val());
        formdata.append('myfile',$("#myfile")[0].files[0]);
        console.log(formdata);
        
        $.ajax({
            url: '/ajax_next/',
            type: 'post',
            contentType: false,  //告诉jQuery不要去处理发送的数据
            processData:false, // 告诉jQuery不要去设置Content-Type请求头
            data: formdata,
            success: function (data) {
                alert(data)
            }
        })
    })
    views中需要自己从POST与body中取出来,后续处理
posted @ 2018-09-12 19:55  luck_L  阅读(133)  评论(0编辑  收藏  举报