事例:統計不止一個做者的圖書:(做者數量大於一) 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(Asynchronous Javascript And XML)翻譯成中文就是「異步Javascript和XML」。即便用Javascript語言與服務器進行異步交互,傳輸的數據爲XML(固然,傳輸的數據不僅是XML,如今更多使用json數據)。ajax
優勢:json
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中取出來,後續處理