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

最新文章

  1. apache rewrite_mod 经典疑问解答
  2. iOS图片如何按比例显示
  3. [C++] socket -7 [邮槽]
  4. 【原】Linux Raid 实验
  5. Mongo中的数据类型
  6. JavaScript的IIFE(即时执行方法)
  7. 关于【bootstrap】中,【tooltip】的不算bug的bug的个人看法
  8. js中的if判断十分优美的简洁写法
  9. poj 3616 Milking Time
  10. 将QT开发的界面程序封装成DLL,在VC中成功调用
  11. mediawiki在windows下的安装
  12. 组合模式(Composite)
  13. JSON字符串自动转换
  14. Centos7 安装 jdk 1.8
  15. FromData获取表单数据
  16. 圆桌的项目Alpha冲刺——测试
  17. SQL Where in list 问题
  18. stm8时钟
  19. 【Java】PreparedStatement VS Statement
  20. python之插入排序

热门文章

  1. 2019安徽省程序设计竞赛 I.你的名字(序列自动机)
  2. Centos7-重建官方yum源
  3. Centos7 Mysql主从双机热备的实战记录
  4. 微信小程序转百度小程序代码
  5. Django REST framework 使用简记
  6. wordpress调用自定义菜单
  7. callbag js callback 标准-支持轻量级观测以及迭代
  8. 行业大秀:EasyEarth Show!
  9. hdfs、yarn集成kerberos
  10. SDN初体验(软件定义网络实验一)