• 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>
  • 相关阅读:
    C语言实现两栈空间共享
    MyEclipse里项目部署到tomcat上之后,tomcat webpps文件夹里为什么找不到这个项目
    CSS选择器
    用友2016成都校园招聘笔试题
    windows、ubuntu下eclipse搭建java、Python环境问题总结
    ubuntu上用eclipse搭建java、python开发环境
    windows 下用eclipse搭建java、python开发环境
    简单事件机制的研究
    软件测试(软件安装:php+mysql+apache+mantis过程遇到的问题以及解决方法)
    4、总结一下,以软件开发生命周期来说明测试的使用情况。
  • 原文地址:https://www.cnblogs.com/YingLai/p/6582535.html
Copyright © 2020-2023  润新知