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、访问测试

python:使用Djangorestframework编写post和get接口的更多相关文章

  1. 【Python】djangorestframework 基于django框架的接口开发

    官网:http://www.django-rest-framework.org/#installation 下载:https://pypi.python.org/pypi/djangorestfram ...

  2. Python OS模块标准库的系统接口及操作方法

    Python OS模块标准库的系统接口及操作方法 os.name 返回当前操作系统名,定义了'posix','nt','mac','os2','ce','java'(我使用win7/python3.1 ...

  3. Python网络编程——编写一个简单的回显客户端/服务器应用

    今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 ( ...

  4. 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试

    相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控 用python + hadoop streami ...

  5. 用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控

    写在前面 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + hado ...

  6. 用python + hadoop streaming 编写分布式程序(三) -- 自定义功能

    又是期末又是实训TA的事耽搁了好久……先把写好的放上博客吧 相关随笔: Hadoop-1.0.4集群搭建笔记 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍 ...

  7. Linux 下Python调用C++编写的动态库

    在工程中用到使用Python调用C++编写的动态库,结果报如下错误: OSError: ./extract_str.so: undefined symbol: _ZNSt8ios_base4InitD ...

  8. vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)

    vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete) 手把手式笔记 Axios配置 安装 axios ...

  9. python调用腾讯云短信接口

    目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...

随机推荐

  1. linux用户的问题

    最近在开发的时候遇到一个问题: 我在某个项目下的某个文件夹内写了一个可以单独run的A.py文件,这个文件里面的代码可以调用kubernetes的python接口来请求kubernetes上的信息(比 ...

  2. modbus-poll和modbus-slave工具的学习使用——环境搭建

    在modbus的学习工具中,非modbus-poll和modbus-slave莫属了,在电脑上模拟的过程中,两者缺一不可 ,当然还需要虚拟串口工具:Configure Virtual Serial P ...

  3. LeetCode 845. Longest Mountain in Array

    原题链接在这里:https://leetcode.com/problems/longest-mountain-in-array/ 题目: Let's call any (contiguous) sub ...

  4. SpringBoot第三节(thymeleaf的配置与SpringBoot注解大全)

    Springboot默认是不支持JSP的,默认使用thymeleaf模板引擎.所以这里介绍一下Springboot使用Thymeleaf的实例以及遇到的问题. 1.配置与使用 1.1:在applica ...

  5. 用OKR提升员工的执行力

    很多管理者在公司管控的过程中常常出现一种乏力的感觉,觉得很多事情推进不下去,结果总是令人不满意.管理者总是会吐槽,“员工执行力差!”而此时大部分管理者会认为公司执行力差是员工能力和态度的问题. 事实上 ...

  6. 2019.12.06 java基础代码

    操作系统中默认码表是:gbk      (一个中文字符占两个字节): utf-8(一个中文字符占三个字节): 数据库建库时的默认码表是:拉丁码表: (1)       public class 定义: ...

  7. Lightning Web Components 组件生命周期(六)

    组件创建以及渲染流程 组件移除dom 处理流程 组件从dom 移除 组件中的disconnectedCallback() 方法被调用 子组件从dom 移除 每个子组件的disconnectedCall ...

  8. Python 08 skimage

    原文:https://www.cnblogs.com/xdjun/p/7874794.html 命令: pip install numpy pip install scipy pip install ...

  9. Linux 系统管理——文件系统与LVM、磁盘配额实例

    1.为主机增加80G SCSI 接口硬盘 2.划分三个各20G的主分区 3.将三个主分区转换为物理卷(pvcreate),扫描系统中的物理卷 4.使用两个物理卷创建卷组,名字为myvg,查看卷组大小 ...

  10. NOI 2019 游记

    day -1 去报了个到,顺便买了一大堆衣服. 感觉学校饭堂不太行. day 0 上午是开幕式,. 下午是笔试,顺利获得 \(100\) 分. day 1 先看题. 第一题看到 \(At^2+Bt+C ...