首页 > 其他分享 >Django自定义接口

Django自定义接口

时间:2023-11-21 13:00:54浏览次数:28  
标签:自定义 get 接口 Django iterations router post id view

一、在有默认(create、list、retrieve、update、destroy)接口时自定义接口

class IterationsViewSet(MyModelViewSet):
    queryset = uc_iterations.objects.all().order_by('id')
    serializer_class = IterationsSerializer
    pagination_class = DIYPagination  # 配置自定义的分页器
    filter_backends = (filters.SearchFilter, DjangoFilterBackend, filters.OrderingFilter,)
    search_fields = ('iterations_name','personnel')
    filterset_fields = ('project_id',)
    authentication_classes = [MyAutheentication, ]

    def getAllIterations(self, request, *args, **kwargs):
        data = list(uc_iterations.objects.all().values("id","iterations_name"))
        return APIRespones('1000','ok',True,data)


    def destroy(self, request, *args, **kwargs):
        id = kwargs.get('pk')
        b = uc_checklist.objects.filter(iterations_id=id).values('id')
        if b.exists():
            return APIRespones('1000', '存在关联checklist数据,不可删除哟~', True)
        else:
            uc_iterations.objects.filter(pk=id).delete()
            return APIRespones('1000', '删除成功,欧耶~', True)

路由注意事项:

路由末尾没有 "/"     r'^iterations/list$', 
router = DefaultRouter()
router.register('projects', caseviews.ProjectsViewSet)
router.register('iterations', caseviews.IterationsViewSet)
router.register('usecases', caseviews.UsecasesViewSet)
router.register('checklist',checklistviews.ChecklistViewSet)
router.register('report', reportviews.ReportViewSet)
router.register('reportcc', emailCc.EmailCcViewSet)

urlpatterns = [
    path('', include(router.urls)),
    url(r'^checkuri/$', checkUri.as_view({"post": "post"})),
    # 迭代报告生成
    url(r'^iterations/report/creat/$', IterationReportViewSet.as_view({"post": "post"})),
    # 迭代报告发送邮件/查看邮件html
    url(r'^iterations/report/handleemail/$', IterationReportViewSet.as_view({"get": "getemail","post":"sendemail"})),
    #用例管理
    url(r'^usecases/view_add$', UsecasesViewSet.as_view({"post":"view_add"})),
    #查询全部指定的迭代信息(id,iteration_name)
    url(r'^iterations/list$', caseviews.IterationsViewSet.as_view({"get":"getAllIterations"})),
]

urlpatterns += router.urls

二、在没有默认(create、list、retrieve、update、destroy)接口时自定义接口

class TapdproductView(APIView):
    authentication_classes = [MyAutheentication, ]
    #/api/tapd/product/?department_id=68&begintime=2022-11-03&endtime=2022-11-07
    def get(self,request):
        # 部门id
        id=request.query_params.getlist("department_id",0)
        #时间范围
        be=request.query_params.get("begintime",0)
        en=request.query_params.get("endtime",0)
        return APIRespones(status=1000, data_msg=productout.pr_story_count(department_id=id, begintime=be, endtime=en))

路由注意事项:

路由末尾有 "/"    url(r'^product/$', tapdviews.TapdproductView.as_view())

标签:自定义,get,接口,Django,iterations,router,post,id,view
From: https://www.cnblogs.com/chenxdnote/p/17846358.html

相关文章

  • django连接mysql pycharm操作sqlite和mysql
    1如果项目使用sqlite,不需要额外配置,直接操作即可2django默认情况链接mysql,用的驱动是mysqldb模块,python3.x以后,这个模块用不了了,咱们用的全都是pymysql,需要做个替换3showmigrations:查看哪些记录更改了,但是没有同步到数据库中3如果使用mysql,需要配置如下: -1配置文件中配置......
  • MySQL主从搭建及Django实现读写分离
    mysql主从搭建#1主从同步的流程或原理1)master会将变动记录到二进制日志里面;2)master有一个I/O线程将二进制日志发送到slave;3)slave有一个I/O线程把master发送的二进制写入到relay日志里面;4)slave有一个SQL线程,按照relay日志处理slave的数据;#2在home目录下创建mys......
  • ant design vue 1.x 和 3.x 自定义表单示例
    以下是项目中用到的自定义表单的写法,vue2vue3各记录一个。1.x(Forvue2)自定义表单的示例实现如下图的控件代码如下:import{Component,Prop,Vue,Watch}from'vue-property-decorator'import{Moment}from'moment'typeValue={left:Moment;right:Moment......
  • API测试:了解API接口测试与API接口测试指南
    一、API测试的基础概念API(应用程序编程接口)是不同软件应用程序之间的通信桥梁。API接口测试则是确保这些接口正常工作、确保数据传输的准确性和安全性的过程。为什么API测试如此重要?确保数据完整性:API在传输数据时必须保证数据的完整,避免数据丢失或损坏。提高安全性:通过API传输的......
  • 2023年第 17期《Python接口自动化+Playwright 》课程,12月3号开学(课程全面升级!)!
    2023年第17期《Python接口自动化+Playwright》课程课程,12月3号开学(课程全面升级!)主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:2023年12月3号-2024年3月2号,晚上20:30-22:30报名费:报名费3000一人(周期3个月)联系微信/QQ:283340479课表如下直播课程主要......
  • 课程接口
    课程列表页前端#1前端新建三个组件 LightCourse.vueFreeCourse.vueActualCourse.vue#2配置路由 importFreeCoursefrom"@/views/FreeCourse";importActualCoursefrom"@/views/ActualCourse";importLightCoursefrom"@/views/L......
  • 创建自定义日志筛选器
    Windows的事件查看器中的日志包含了很多信息,但是系统自带的筛选器只能筛选固定的字段和内容。有时候想根据某个事件中的用户名或者IP筛选的时候就没办法了。此时需要创建自定义筛选器来实现。首先找到希望筛选的日志,调整成详细的XML视图。  这里面就有我们需要用到的字段信......
  • vue自定义指令按enter键触发事件
    directives:{enter:{bind(el,binding){document.addEventListener('keyup',(event)=>{if(event.keyCode===13){binding.value()}})}}},v-enter="search"......
  • Java之接口的详解
    2.1概述我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。2.2定义格式//接口的定义格式:interface接口名称{//抽象方法}//接......
  • java 接口
    packagenet.elaina.interface01;publicabstractclassAnimal{privateStringname;privateintage;publicAnimal(){}publicAnimal(Stringname,intage){this.name=name;this.age=age;}/***......