栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django +restframework

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929617.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号