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']方法均可獲取對應的valuedatetime = 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()# 獲取查詢數據類型為listdata = cursor.fetchall()# 關閉游標 cursor.close()# 斷開數據庫連接 conn.close()# 新建空列表用來放數據msg_list = []# 遍歷查詢到的數據for i in data:# 創建空的字典,存放對應的字段信息msg_dict = {}# 將查詢到的數據作為value對應到字典相應keymsg_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 MonitorMsgurlpatterns = [path('admin/', admin.site.urls),# 接口的url:http://127.0.0.1:8000/monitorMsgpath('monitorMsg', MonitorMsg.as_view()), ]
?
7、啟動服務
python manage.py runserver
?
8、訪問測試
?
?
?
?