• Django 序列化 前端通过ajax来获取数据库中的数据


    前端通过ajax来获取数据库中的数据

    1、实现方式一(不用,只参考)

    在后台通过获取数据并自己格式化成html数据全部发给前端

    # views.py
    
    def get_data(request):
        user_list = models.UserInfo.objects.all()
        return render(request, 'get_data.html', {'user_list':user_list})
    # 获取数据的前端页面 index.html
    <h1>用户列表</h1>
    <table id='tb'></table>

    <script src='/statics/jquery.js'></script>

    <script>
      $(function{
        initData()
      });
      function initData(){
        $.ajax({
          url: '/get_data.html'
          type: 'GET',
          success: function(arg){
              $('#tb').append(arg);
            }
        })

      }
    <script>
    # get_data.html
    
    {% for row in user_list %}
            <tr>
               <td>{{ row.id }}</td>
           <td>{{ row.username }}</td>
         </tr>
    {% endfor %}

     2、实现方法二

    在后台通过只获取数据发给前端,由前端生成相应的html来存放数据

    # views.py
    from django.core imports serializers  可将对象序列化为符串
    def get_data(request):
      ret = {'status':True, 'data':None}
      try:   # 1
        user_list
    = models.UserInfo.objects.all()  # 这时是个QuerySet,里边是一个一个对象,无法json.dumps()
        ret['data'] = serializers.serialize('json',user_list)  # 将QuerySet对象序列化为json格式的字符串

        # 2
        # user_list = models.UserInfo.objects.all().values('id','username') #
    这时是个QuerySet,里边是一个一个字典
        # ret['data']= list(userlist)  # 用list将最外层的QuerySet转为列表,就可json.dumps()

        # 3
    # user_list = models.UserInfo.objects.all().values_list('id','username') #这时是个QuerySet,里边是一个一个元组
      # ret['data']= list(userlist)  # 用list将最外层的QuerySet转为列表,就可json.dumps()
        except Exception as e:
        ret['data'] = False
    return HttpResponse(json.dumps(ret))
    # 获取数据的前端页面 index.html
    <h1>用户列表</h1>
    <table id='tb'></table>
    
    <script src='/statics/jquery.js'></script>
    
    <script>
      $(function{
        initData()
      });
      function initData(){
        $.ajax({
          url: '/get_data.html'
          type: 'GET',
          dataType:'JSON'       success: function(arg){           if(arg.status){
                // 此时arg.data是个字符串
                v = JSON.parse(arg.data) //再将json字符串转为json对象
                //通过for循环取里里面的数据生成html...
                }
            }     })   } <script>
  • 相关阅读:
    图标字体IcoMoon 使用
    JS 寻找孩子并打印路径
    为什么要用on()而不直接使用click
    setTimeout 虚假的“异步”
    解决Ajax.BeginForm还是刷新页面的问题
    .net生成Excel,并下载
    C#判断文件是否正在被使用
    sql为数字添加千分位(也就是钱的格式)
    HotelIInventory项目小结
    一步一步实现FormsAuthentic验证登录
  • 原文地址:https://www.cnblogs.com/dangrui0725/p/9672043.html
Copyright © 2020-2023  润新知