django +restframework

1.首先下载

pip install django
pip install djangorestframework

2.在settings中配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'bffile_data.apps.BffileDataConfig',
    'rest_framework'
]

3.新建一个serizalizers文件

from rest_framework import serializers

class File_infoSerializers(serializers.ModelSerializer):
    file_detail = serializers.SerializerMethodField()   #自己定义的方法,里面可以去获取别的外键指向的数据

    def get_file_detail(self, obj):
        file_version_obj = obj.fvfile_id.filter(is_delete="0").order_by("-file_version").first()
        update_time = str(file_version_obj.update_time)[:16]
        fversion_id = file_version_obj.fversion_id
        handlers_id = file_version_obj.handlers_id.person_id
        handlers_name = file_version_obj.handlers_id.person_name
        size = file_version_obj.size
        file_version = file_version_obj.file_version
        file_url = file_version_obj.file_url
        return {"fversion_id":fversion_id,"update_time": update_time, "handlers_id": handlers_id, "handlers_name": handlers_name, "size": size,
                "file_version": file_version, "file_url": file_url}

    class Meta:
        model = File_info
        fields = ["file_id", "file_name", "type", "file_detail"]

4.在urls中添加

from django.urls import path
from bffile_data.views import *
from rest_framework.routers import SimpleRouter

routers = SimpleRouter()
urlpatterns = [
    path(r'datas_manage', File_dates.as_view(),name='file_dates'),
]
urlpatterns += routers.urls

5.在views中添加视图

from rest_framework import mixins, viewsets, status
from bffile_data.serializers import File_infoSerializers
from bffile_data import models
from bfresource_platform import settings as config
from bffile_data import tools as ts
from rest_framework.generics import GenericAPIView
from rest_framework.response import Response

class File_dates(GenericAPIView, mixins.ListModelMixin, mixins.CreateModelMixin, mixins.UpdateModelMixin):
    queryset = models.File_info.objects.filter(is_delete='0')
    serializer_class = File_infoSerializers

    def get(self, request):
        results = []
        serializer_datas = self.serializer_class(self.filter_queryset(self.get_queryset()), many=True).data
        for serializer_data in serializer_datas:
            if serializer_data["type"] == "文件夹":
                results.append(serializer_data)
                serializer_datas.remove(serializer_data)
        results.extend(serializer_datas)
        result = ts.result_data(status.HTTP_200_OK, results, "查询成功")
        return Response(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值