zoukankan      html  css  js  c++  java
  • REST Framework

    REST Fromework就是对你的数据库的表进行字段的序列化

    以前是我们取出来对相应的进行序列化 但是这个不仅仅能序列化 还能进行深度查找

    你需要现在python中装你一个djangorestframework

    pip install djangorestframework

    如果你的 pip报错你需要先升级你的pip

    python -m pip install --upgrade pip

     然后你使用的时候从导入这些模块中的内容

    from rest_framework import serializers

    使用的时候你需要给你的对应的表的字段进行关联:

    class LW(serializers.Serializer):
        # 用serializers和你的字段一一进行关联 就是对你的表中的字段进行 一一序列化
        id = serializers.IntegerField()
    
        title = serializers.CharField()
        create_time = serializers.DateTimeField()
    
        type = serializers.IntegerField()
        school = serializers.CharField(source='school.name') # score是对你的后面的内容直接查找 如果是属性就直接查找 是方法就返回


    score是对你的后面的内容直接查找 如果是属性就直接查找 是方法就返回

    上面写的是需要一个一个字段进行关联这个太麻烦了  我们可以进行简便写法:

    class LL(serializers.ModelSerializers):
        type = serializers.CharField(source = 'get_type_display')  # get_type_display 是一个方法是查找对应额type字段中的对应的中文
    
        class Meta:
            model = Article   # 让你的表和这个类关联起来
            
            fields = '__all__'  # 这个是查找你的对应的表中的所有的字段
            
            depth = 1  # 查找你的关联的深度 因为可能你关联的那个表还关联其他的表
            
    class LW(serializers.Serializer):
        # 用serializers和你的字段一一进行关联 就是对你的表中的字段进行 一一序列化
        id = serializers.IntegerField()
    
        title = serializers.CharField()
        create_time = serializers.DateTimeField()
    
        type = serializers.IntegerField()
        school = serializers.CharField(source='school.name') # score是对你的后面的内容直接查找 如果是属性就直接查找 是方法就返回
    
    
    
    class LL(serializers.ModelSerializer):
        type = serializers.CharField(source = 'get_type_display')  # get_type_display 是一个方法是查找对应额type字段中的对应的中文
    
        class Meta:
            model = Article   # 让你的表和这个类关联起来
    
            fields = '__all__'  # 这个是查找你的对应的表中的所有的字段
    
            depth = 1  # 查找你的关联的深度 因为可能你关联的那个表还关联其他的表
    
    
    
    def article(rquest):
        article_list= Article.objects.all()
    
        nice = LL(article_list,many = True)   # many 是因为你的查找到的query_set是很多的对象所以你需要用到many  如果不用这个会报错 如果就一个就不用写
        print(nice.data)  # data是的到的序列化后的对象
        return JsonResponse(nice.data,safe=False)    




    # 这种是找到一个的时候可以省略many 然后得到的是字典类型的 也不用写safe=false
    def article_detial(request,id):

    article_obj = Article.objects.filter(id = id).first()

    nn = LL(article_obj) # 因为指定了是哪一个 得到的就是一个字典 就这一个不用加many

    return JsonResponse(nn.data) # 字典类型的不用加safe = false

  • 相关阅读:
    20130329 基于校历的授课计划与进度管理系统 文档展示(417更新)
    【记录】搭建本地wordpress全过程
    (转)如何修改WAMP中mysql默认空密码
    SQL SERVER 与ACCESS、EXCEL的数据转换
    用C#得到真正的随机数
    (转)SQL Server 2008 R2 中英文 开发版企业版标准版 下载
    [安装升级] Discuz!X2.5 全新安装图文教程
    Arduino语言
    2010全面兼容IE6/IE7/IE8/FF的CSS HACK写法
    ASP.NET2.0利用httphandler实现URL重写(伪URL及伪静态)
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/9398256.html
Copyright © 2011-2022 走看看