django通过jquery/json(复杂数据)/serializers(查询结果集【数据库查询】) 实现ajax异步请求(get/post)

jquery

## urls.py

from django.urls import re_path
from .views import *
urlpatterns=[
    re_path(r'^what', what_views),
]

## views.py

from django.http import HttpResponse
def what_views(request):
    return HttpResponse('jquery us ok')

## (get).html

<button onclick="jqAjaxBtn()">jequery-ajax</button>
<div id="show"></div>
<script src="{% static 'js/jquery-3.4.1.js' %}"></script>
<script>
    function jqAjaxBtn(){
        {#$.get(url,data,callback,dataType)#}
        $.get('/what',function (data) {
            $("#show").html(data);
        });
    }
</script>

## (post.注意post有csrf验证问题).html

{% csrf_token %}## 注意别忘记
<button onclick="jqAjaxBtn()">jequery-ajax</button>
<div id="show"></div>
<script src="{% static 'js/jquery-3.4.1.js' %}"></script>
<script>
    function jqAjaxBtn(){
      var params = {
      ## <input type="hidden" name="csrfmiddlewaretoken"
      ##  value="*****************">
      ## 标题$("[name='csrfmiddlewaretoken']").val() 取出csrfmiddlewaretoken的值
        'csrfmiddlewaretoken':$("[name='csrfmiddlewaretoken']").val()
      }

      $.post('/12-server/',params,function(data){
        //data表示的是响应回来的数据
        $("#show").html(data);
      });
    }
</script>

json(复杂数据)

## views.py

from django.http import HttpResponse
import json## 注意别忘记
def what_views(request):
    message={
        'name' :'zhao',
        'age': 50,
    }
    str=json.dumps(message)
    return HttpResponse(str)
    ## HttpResponse(‘jquery is ok’,str)是错误写法

## .html

<button onclick="jsonAjaxBtn()">json-ajax</button>
<div id="show"></div>
<script src="{% static 'js/jquery-3.4.1.js' %}"></script>
<script>
    function jsonAjaxBtn() {
        $.get('/what',function (data) {
            var html='';
            html+="<h3>姓名"+data.name+"</h3>";
            html+="<h3>年龄"+data.age+"</h3>";
            $("#show").html(html);
        },'json');
    }
</script>

serializers(查询结果集【数据库查询】)

## views.py

from django.http import HttpResponse
from django.core import serializers
from .models import *
def what_views(request):
    users = Users.objects.all()
    # 将uesrs转换成json字符串
    jsonStr =serializers.serialize('json',users)
    return HttpResponse(jsonStr)

## .html

<button onclick="jqAjaxBtn()">jequery-ajax</button>
<div id="show"></div>
<script src="{% static 'js/jquery-3.4.1.js' %}"></script>
<script>
    function jqAjaxBtn(){
        $.get('/what/',function (data) {
            $.each(data,function (i,obj) {
                console.log('id:'+obj.pk);
                console.log('name:'+obj.fields.name);
            });
        },'json');
    }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值