zoukankan      html  css  js  c++  java
  • jQuery DataTables && Django serializer

    jQuery DataTables

    • https://www.datatables.net

    本文参考的官方示例

    • http://datatables.net/release-datatables/examples/ajax/objects.html

    关于Python序列化

    • http://www.cnblogs.com/linyawen/archive/2012/03/22/2411381.html

    Django中的Models序列化

    • http://www.weiguda.com/blog/19/

    Python的super用法

    • http://www.cnblogs.com/dkblog/archive/2011/02/24/1980654.html

    models.py

    from django.db import models
    from django.contrib import admin
    
    # Create your models here.
    class BankData(models.Model):
        acc_no = models.CharField(max_length=45,primary_key=True)
        name   = models.CharField(max_length=45,blank=True,default='')
        bank   = models.CharField(max_length=45,blank=True,default='')
    
    class BankDataAdmin(admin.ModelAdmin):
        list_display = ('acc_no',)
    
    admin.site.register(BankData, BankDataAdmin)

    serializers.py

    from rest_framework import serializers
    from myapp.models import BankData
    
    class BankDataSerializer(serializers.ModelSerializer):
        class Meta:
            model = BankData
            fields = ('acc_no','name','bank')

    views.py

    #! /usr/bin/env python
    # -*- coding:utf-8 -*-
    
    from myapp.models import BankData
    from django.http import HttpResponse
    from myapp.serializers import BankDataSerializer
    from rest_framework.renderers import JSONRenderer
    
    #json
    class JSONResponse(HttpResponse):
        def __init__(self, data, **kwargs):
            content = JSONRenderer().render(data)
            kwargs['content_type'] = 'application/json'
            super(JSONResponse, self).__init__(content,**kwargs)
    
    #jsonp
    class JSONPResponse(HttpResponse):
        def __init__(self, data, callback='callback',**kwargs):
            content = JSONRenderer().render(data)
            jsonp_content = callback+ "(" + content + ")"
            kwargs['content_type'] = 'application/json'
            super(JSONPResponse, self).__init__(jsonp_content,**kwargs)
    
    #json for DataTables
    class JSONDTResponse(HttpResponse):
        def __init__(self, data, **kwargs):
            content = JSONRenderer().render(data)
            dt_content = "{"data":" + content + "}"
            kwargs['content_type'] = 'application/json'
            super(JSONDTResponse, self).__init__(dt_content,**kwargs)
    
    
    def datas(request):
        bds = BankData.objects.all()
        serializer = BankDataSerializer(bds,many=True)
        return JSONDTResponse(serializer.data)

    bank_data.html

    <!DOCTYPE html>
    <head>
        <title>银行信息</title>
        <link rel="stylesheet" type="text/css" href="/static/css/jquery.dataTables.min.css">
        <script type="text/javascript" src="/static/js/jquery.js"></script>
        <script type="text/javascript" src="/static/js/jquery.dataTables.min.js"></script>
    </head>
    <body>
    <script>
        $(document).ready(function() {
            $('#example').dataTable( {
                "bProcessing":true,
                "ajax":'/myapp/datas/',
                "columns":
                [
                    {'data':'acc_no'},
                    {'data':'name'},
                    {'data':'bank'},
                ]
            });
        });
    </script>
    <table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>账号</th>
                <th>姓名</th>
                <th>银行</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>账号</th>
                <th>姓名</th>
                <th>银行</th>
            </tr>
        </tfoot>
    </table>
    </body>

    PS.Django中快速将Models变成字典对象

    from django.forms.models import model_to_dict
    from django.contrib.auth.models import User
    
    us = User.objects.all()
    print model_to_dict(us[0])
  • 相关阅读:
    基础网络技术--学习网络的的道路漫长啊
    华为nova8se和vivoS7e的区别哪个好
    Java.awt实现一个简单的围棋
    HashMap put原理详解(基于jdk1.8)
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    【u116】最短路计数
    【u108】取数游戏
    【u106】3D模型
    【topcoder SRM 652 DIV2 250】ValueOfString
    【u103】绘制二叉树
  • 原文地址:https://www.cnblogs.com/flowjacky/p/4537408.html
Copyright © 2011-2022 走看看