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']方法均可獲取對應的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、訪問測試

?

?

?

?

轉載于:https://www.cnblogs.com/gcgc/p/11541628.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391224.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes 入門(3)集群安裝

1. kubeadm簡介 kubeadm 是 Kubernetes 官方提供的一個 CLI 工具,可以很方便的搭建一套符合官方最佳實踐的最小化可用集群。當我們使用 kubeadm 搭建集群時,集群可以通過 K8S 的一致性測試,并且 kubeadm 還支持其他的集群生命周期功能&#…

Angular Material 攻略 04 Icon

Icon 網頁系統中的Icon雖然說很簡單,但是其中的學問還是有很多的,我們常用的Icon庫有FontAwesome、Iconfont等,我們選擇了Angular Material這個組件庫,就介紹Material Icons吧。 對Icon感興趣的同學可以看一下這里 Material Desig…

【9303】平面分割

Time Limit: 10 second Memory Limit: 2 MB 問題描述 同一平面內有n(n≤500)條直線,已知其中p(p≥2)條直線相交與同一點,則這n條直線最多能將平面分割成多少個不同的區域? Input 兩個整數n&am…

簡述yolo1-yolo3_使用YOLO框架進行對象檢測的綜合指南-第一部分

簡述yolo1-yolo3重點 (Top highlight)目錄: (Table Of Contents:) Introduction 介紹 Why YOLO? 為什么選擇YOLO? How does it work? 它是如何工作的? Intersection over Union (IoU) 聯合路口(IoU) Non-max suppression 非最大抑制 Networ…

django:資源網站匯總

Django REST framework官網 http://www.sinodocs.cn/ django中文網 https://www.django.cn/ 轉載于:https://www.cnblogs.com/gcgc/p/11542068.html

Kubernetes 入門(4)集群配置

1. 集群配置 報錯: message: ‘runtime network not ready: NetworkReadyfalse reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized’ 原因:cni未被初始化(CNI 是 Container Network In…

【例9.8】合唱隊形

【例9.8】合唱隊形 鏈接:http://ybt.ssoier.cn:8088/problem_show.php?pid1264 時間限制: 1000 ms 內存限制: 65536 KB【題目描述】 N位同學站成一排,音樂老師要請其中的(N-K)位同學出列,使得剩下的K位同學排成合唱隊形。 合唱隊形是…

scrum流程 規劃 沖刺_Scrum –困難的部分2:更快地沖刺

scrum流程 規劃 沖刺In the first part, I presented my favorite list of Scrums hard parts and how to work around them. In the second part, I offer you a colorful bouquet of workarounds as well. Have fun!在第一部分中 ,我介紹了我最喜歡的Scrum困難部分…

JAVA基礎知識|lambda與stream

lambda與stream是java8中比較重要兩個新特性,lambda表達式采用一種簡潔的語法定義代碼塊,允許我們將行為傳遞到函數中。之前我們想將行為傳遞到函數中,僅有的選擇是使用匿名內部類,現在我們可以使用lambda表達式替代匿名內部類。在…

數據庫:存儲過程_數據科學過程:摘要

數據庫:存儲過程Once you begin studying data science, you will hear something called ‘data science process’. This expression refers to a five stage process that usually data scientists perform when working on a project. In this post I will walk through ea…

901

901 轉載于:https://www.cnblogs.com/Forever77/p/11542129.html

leetcode 137. 只出現一次的數字 II(位運算)

給你一個整數數組 nums ,除某個元素僅出現 一次 外,其余每個元素都恰出現 三次 。請你找出并返回那個只出現了一次的元素。 示例 1: 輸入:nums [2,2,3,2] 輸出:3 示例 2: 輸入:nums [0,1,0,…

【p081】ISBN號碼

Time Limit: 1 second Memory Limit: 50 MB 【問題描述】 每一本正式出版的圖書都有一個ISBN號碼與之對應,ISBN碼包括9位數字、1位識別碼和3位分隔符,其規定格式如“x-xxx-xxxxx-x”,其中符號“-”是分隔符(鍵盤上的減號&#xff…

gitlab bash_如何編寫Bash一線式以克隆和管理GitHub和GitLab存儲庫

gitlab bashFew things are more satisfying to me than one elegant line of Bash that automates hours of tedious work. 沒有什么比讓Bash自動完成數小時繁瑣工作的Bash優雅系列令我滿意的了。 As part of some recent explorations into automatically re-creating my la…

寒假學習筆記(4)

2018.2.11 類中的常成員 關鍵字const,在類定義中聲明數據成員使用關鍵字限定,聲明時不能初始化。初始化列表,類中的任何函數都不能對常數據成員賦值,包括構造函數。為構造函數添加初始化列表是對常數據成員進行初始化的唯一途徑。…

svm和k-最近鄰_使用K最近鄰的電影推薦和評級預測

svm和k-最近鄰Recommendation systems are becoming increasingly important in today’s hectic world. People are always in the lookout for products/services that are best suited for them. Therefore, the recommendation systems are important as they help them ma…

Oracle:時間字段模糊查詢

需要查詢某一天的數據,但是庫里面存的是下圖date類型 將Oracle中時間字段轉化成字符串,然后進行字符串模糊查詢 select * from CAINIAO_MONITOR_MSG t WHERE to_char(t.CREATE_TIME,yyyy-MM-dd) like 2019-09-12 轉載于:https://www.cnblogs.com/gcgc/p/…

cogs2109 [NOIP2015] 運輸計劃

cogs2109 [NOIP2015] 運輸計劃 二分答案樹上差分。 STO鏈剖巨佬們我不會(太虛偽了吧 首先二分一個答案,下界為0,上界為max{路徑長度}。 然后判斷一個答案是否可行,這里用到樹上差分。 (闊以理解為前綴和??&…

leetcode 690. 員工的重要性(dfs)

給定一個保存員工信息的數據結構,它包含了員工 唯一的 id ,重要度 和 直系下屬的 id 。 比如,員工 1 是員工 2 的領導,員工 2 是員工 3 的領導。他們相應的重要度為 15 , 10 , 5 。那么員工 1 的數據結構是 [1, 15, [2]] &#x…

組件分頁_如何創建分頁組件

組件分頁The theme for week #17 of the Weekly Coding Challenge is:每周編碼挑戰第17周的主題是: 分頁 (Pagination) A Pagination Component is used on websites where you have more content available than you want to display at one time to the user so …