• 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])
  • 相关阅读:
    [原]80386中断表
    [原]elf可执行连接文件格式
    [原]nasm语法
    VLAN基础配置及Access接口
    配置hybird接口
    配置Trunk接口
    [导入]Oracle常用技巧和脚本
    [导入]ORACLE 常用的SQL语法和数据对象
    [导入]Oracle 基本知识
    [导入]Oracle特殊包
  • 原文地址:https://www.cnblogs.com/flowjacky/p/4537408.html
Copyright © 2020-2023  润新知