python:使用Djangorestframework编写post和get接口
生活随笔
收集整理的這篇文章主要介紹了
python:使用Djangorestframework编写post和get接口
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、安裝django
pip install django
?
2、新建一個(gè)django工程
python manage.py startproject cainiao_monitor_api
?
3、新建一個(gè)app
python manage.py startapp monitor
?
4、安裝DRF
pip install djangorestframework
?
5、編寫(xiě)視圖函數(shù)
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等名稱(chēng),這個(gè)名稱(chēng)就是接口類(lèi)型def post(self, request):"""查詢某一天的數(shù)據(jù);此方法請(qǐng)求類(lèi)型為post,根據(jù)urls.py中的配置,該接口地址為:/monitorMsg,傳入?yún)?shù)方式以下三種都可以:json方式或者form-data或者x-www-form-urlencoded,request.data['datetime']方式都可以解析到入?yún)⒌闹?param request::return: 返回CAINIAO_MONITOR_MSG表中所有的異常信息"""# 如果前臺(tái)通過(guò)form-data格式傳入?yún)?shù),則使用request.POST['key']此方法獲取參數(shù)的值# datetime = request.POST['datetime']# 【推薦】如果前臺(tái)通過(guò)json方式或者form-data或者x-www-form-urlencoded傳入?yún)?shù),則使用request.data['key']方法均可獲取對(duì)應(yīng)的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# 連接數(shù)據(jù)庫(kù)conn = cx_Oracle.connect('name', 'pwd', '10.*.*.*:1521/sid')# 創(chuàng)建游標(biāo)cursor = conn.cursor()# 執(zhí)行sql語(yǔ)句 cursor.execute(sql)# 提交數(shù)據(jù) conn.commit()# 獲取查詢數(shù)據(jù)類(lèi)型為listdata = cursor.fetchall()# 關(guān)閉游標(biāo) cursor.close()# 斷開(kāi)數(shù)據(jù)庫(kù)連接 conn.close()# 新建空列表用來(lái)放數(shù)據(jù)msg_list = []# 遍歷查詢到的數(shù)據(jù)for i in data:# 創(chuàng)建空的字典,存放對(duì)應(yīng)的字段信息msg_dict = {}# 將查詢到的數(shù)據(jù)作為value對(duì)應(yīng)到字典相應(yīng)keymsg_dict['id'] = i[0]msg_dict['scenario_code'] = i[1]msg_dict['msg'] = i[2]msg_dict['status'] = i[4]# 將遍歷的數(shù)據(jù)存放到list中 msg_list.append(msg_dict)# 定義最終的返回?cái)?shù)據(jù)樣式res_data = {'count': len(msg_list), 'data': msg_list}# 將res_data序列化為json對(duì)象,并返回return HttpResponse(json.dumps(res_data), content_type="application/json")?
?
6、編寫(xiě)路由
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、啟動(dòng)服務(wù)
python manage.py runserver
?
8、訪問(wèn)測(cè)試
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/gcgc/p/11541628.html
總結(jié)
以上是生活随笔為你收集整理的python:使用Djangorestframework编写post和get接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dev控件使用CheckedListBo
- 下一篇: 梦到自己怀孕几个月了都有胎动了