• python:使用Djangorestframework编写post和get接口


    1、安装django

    pip install django

    2、新建一个django工程

    python manage.py startproject cainiao_monitor_api

    3、新建一个app

    python manage.py startapp monitor

    4、安装DRF

    pip install djangorestframework

    5、编写视图函数

    views.py

    from rest_framework.views import APIView
    import json
    import cx_Oracle
    from django.http import HttpResponse
    # Create your views here.
    
    
    class MonitorMsg(APIView):
        # 此处方法名只能为post或者get等名称,这个名称就是接口类型
        def post(self, request):
            """
            查询某一天的数据;
            此方法请求类型为post,根据urls.py中的配置,该接口地址为:/monitorMsg,
            传入参数方式以下三种都可以:json方式或者form-data或者x-www-form-urlencoded,
            request.data['datetime']方式都可以解析到入参的值
            :param request:
            :return: 返回CAINIAO_MONITOR_MSG表中所有的异常信息
            """
            # 如果前台通过form-data格式传入参数,则使用request.POST['key']此方法获取参数的值
            # datetime = request.POST['datetime']
            # 【推荐】如果前台通过json方式或者form-data或者x-www-form-urlencoded传入参数,则使用request.data['key']方法均可获取对应的value
            datetime = request.data['datetime']
            print(request.data)
            sql = "select * from CAINIAO_MONITOR_MSG t WHERE to_char(t.CREATE_TIME,'yyyy-MM-dd') like '%s' " % datetime
            # 连接数据库
            conn = cx_Oracle.connect('name', 'pwd', '10.*.*.*:1521/sid')
            # 创建游标
            cursor = conn.cursor()
            # 执行sql语句
            cursor.execute(sql)
            # 提交数据
            conn.commit()
            # 获取查询数据类型为list
            data = cursor.fetchall()
            # 关闭游标
            cursor.close()
            # 断开数据库连接
            conn.close()
            # 新建空列表用来放数据
            msg_list = []
            # 遍历查询到的数据
            for i in data:
                # 创建空的字典,存放对应的字段信息
                msg_dict = {}
                # 将查询到的数据作为value对应到字典相应key
                msg_dict['id'] = i[0]
                msg_dict['scenario_code'] = i[1]
                msg_dict['msg'] = i[2]
                msg_dict['status'] = i[4]
                # 将遍历的数据存放到list中
                msg_list.append(msg_dict)
            # 定义最终的返回数据样式
            res_data = {'count': len(msg_list), 'data': msg_list}
            # 将res_data序列化为json对象,并返回
            return HttpResponse(json.dumps(res_data), content_type="application/json")

    6、编写路由

    urls.py

    from django.contrib import admin
    from django.urls import path
    from monitor.views import MonitorMsg
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        # 接口的url:http://127.0.0.1:8000/monitorMsg
        path('monitorMsg', MonitorMsg.as_view()),
    ]

    7、启动服务

    python manage.py runserver

    8、访问测试

     

  • 相关阅读:
    centos修改主机名 root@后面的名字
    Postgresql插入或更新操作upsert
    postgresql中使用distinct去重
    Docker permission denied while trying to connect to the Docker daemon socket
    zookeeper三节点集群安装记录
    使用Jenkins pipeline流水线构建docker镜像和发布
    使用wrk进行压力测试
    Springboot配置端口号
    intellij idea使用maven本地仓库及修改本地仓库路径
    idea 多模块项目
  • 原文地址:https://www.cnblogs.com/gcgc/p/11541628.html
Copyright © 2020-2023  润新知