zoukankan      html  css  js  c++  java
  • Django序列化

    序列化定义:

    向后台发送请求数据,序列化返回一个数据,这个过程称之为序列化,或者也可以理解为,

    把一个对象转换为字符串,这个转换完成以后的对象可以被保存到本地文件中,这个过程就称之为序列化。

    反之:如果把一个字符串,或文件转换为一个对象,这个过程称之为反序列化。

     示例一:(适用于数据量很少的场合)

    # views
    from django.shortcuts import render, HttpResponse
    from day60app import models
    # Create your views here.
    
    
    def alignment(request):
    
        return render(request, "alignment.html")
    
    
    def get_data(request):
        user_list = models.UserTabel.objects.all()
    
        return render(request, "get_data.html", {"user_list": user_list})
    
    # models
    from django.db import models
    
    # Create your models here.
    
    
    class UserTabel(models.Model):
        user = models.CharField(max_length=10)
        age = models.IntegerField
        email = models.EmailField(max_length=20)
    
    
    # 前端
    
    页面一:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <h1>用户列表</h1>
    <table id="tb">
    
    </table>
    
    <script src="/static/jquery-3.1.1.js"></script>
    <script>
        $(function () {
            initData()
        });
    
        function initData() {
            $.ajax({
                url:"/get_data/",
                type:"GET",
                success:function (arg) {
    {#                console.log(arg)#}
                $("#tb").append(arg);
                }
            })
        }
    
    
    
    </script>
    </body>
    </html>
    
    
    页面二:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {% for row in user_list %}
        <tr>
            <td>
                {{ row.user }}
            </td>
            <td>
                {{ row.email }}
            </td>
        </tr>
    
    
    {% endfor %}
    </body>
    </html>

    示例二:(serializers,django自带的序列化)

    # views
    
    from django.shortcuts import render, HttpResponse
    from day60app import models
    from django.core import serializers
    import json
    
    def alignment(request):
    
        return render(request, "alignment.html")
    
    
    def get_data(request):
        ret = {"status": True, "data": None}
        try:
    
            # serializers,django自带的序列化,只能序列化QuerySet对象
            # 基于对象的序列化
            # user_list = models.UserTabel.objects.all()
            # ret["data"] = serializers.serialize("json", user_list)
            # 前端
            # var v = JSON.parse(arg.data);
    
    
            # 基于字典的序列化,用list将QuerySet对象转换为list类型
            # user_list = models.UserTabel.objects.all().values("id", "user")
            user_list = models.UserTabel.objects.all().values_list("id", "user")
            # 前端console.log(arg.data);
    
    
            ret["data"] = list(user_list)
    
        except Exception as e:
            ret["status"] = False
    
        result = json.dumps(ret)
        return HttpResponse(result)
    
    
    # 前端
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <h1>用户列表</h1>
    <table id="tb">
    
    </table>
    
    <script src="/static/jquery-3.1.1.js"></script>
    <script>
        $(function () {
            initData()
        });
    
        function initData() {
            $.ajax({
                url:"/get_data/",
                type:"GET",
                dataType:"JSON",
    
                success:function (arg) {
    {#                console.log(arg)#}
                    if (arg.status){
                        console.log(arg.data);
    {#                    var v = JSON.parse(arg.data);  /*基于serializers,django自带的序列化在进行反序列化*/#}
                    }
    
                }
            })
        }
    
    
    
    </script>
    </body>
    </html>
  • 相关阅读:
    codeforces 132C Logo Turtle(dp)
    LCIS 最长公共上升子序列
    欧拉函数与欧拉定理
    HDU 5592 ZYB's Premutation(树状数组+二分)
    HDU 4294 Multiple(搜索+数学)
    1080 Graduate Admission (30分)(排序)
    1078 Hashing (25分)(欧拉筛素数打表 + hash平方探测)
    1074 Reversing Linked List (25分)(链表区间反转)
    1099 Build A Binary Search Tree (30分)(BST的层序或者中序遍历建树,层序便利输出树)
    1068 Find More Coins (30分)(记忆化搜索 || dp)
  • 原文地址:https://www.cnblogs.com/YingLai/p/6582535.html
Copyright © 2011-2022 走看看