Refer:Bmob後端雲REST API接口文檔:http://docs.bmob.cn/data/Restful/a_faststart/doc/index.html
本文使用python對Bmob REST API的基本增删改查接口進行封裝,友善在小程式開發時批量插入原始資料。
#!/usr/bin/python
# coding:utf-8
# Bmob後端雲基本REST API封裝
import requests
import json
# 每個應用都會有這兩個ID,以下方法如果不傳入這兩個參數,那麼使用這裡預設的值
APP_ID = 'XXX'
REST_API_KEY = 'XXX'
# 封裝rest api的get方法,根據對象ID擷取一條資料
# table_name:要查詢的表名
# object_id:要查詢的資料記錄的ID
def query(table_name,object_id,app_id = APP_ID,rest_api_key = REST_API_KEY):
# 建構請求頭
headers = {}
headers['X-Bmob-Application-Id'] = app_id
headers['X-Bmob-REST-API-Key'] = rest_api_key
# 建構url
url = 'https://api.bmob.cn/1/classes/{table_name}/{object_id}'.format(table_name = table_name,object_id = object_id)
# 發起請求
resp = requests.get(url,headers = headers,verify = False)
# 設定響應體編碼
resp.encoding = 'utf-8'
if resp and resp.status_code == :
return json.loads(resp.text)
return None
# 封裝rest api的post方法,插入一條記錄
# table_name:表名,如果表名還不存在,則先建立一個表再插入資料
# data:字典,要插入的記錄的各個字段的字段名和值
def insert(table_name,data,app_id = APP_ID,rest_api_key = REST_API_KEY):
# 建構請求頭
headers = {}
headers['X-Bmob-Application-Id'] = app_id
headers['X-Bmob-REST-API-Key'] = rest_api_key
headers['Content-Type'] = 'application/json'
# 建構url
url = 'https://api.bmob.cn/1/classes/{table_name}'.format(table_name = table_name)
# 發起請求
resp = requests.post(url,headers = headers,data = json.dumps(data),verify = False)
# 設定響應體編碼
resp.encoding = 'utf-8'
if resp and resp.status_code == :
print 'insert success!'
return json.loads(resp.text)
return None
# 封裝rest api的put方法,傳入記錄ID,修改一條資料
# table_name:要更新的表名
# object_id:要更新的資料記錄的ID
# data:字典類型,要更新的資料的鍵值對
def update(table_name,object_id,data,app_id = APP_ID,rest_api_key = REST_API_KEY):
# 建構請求頭
headers = {}
headers['X-Bmob-Application-Id'] = app_id
headers['X-Bmob-REST-API-Key'] = rest_api_key
headers['Content-Type'] = 'application/json'
# 建構url
url = 'https://api.bmob.cn/1/classes/{table_name}/{object_id}'.format(table_name = table_name,object_id = object_id)
# 發起請求
resp = requests.put(url,headers = headers,data = json.dumps(data),verify = False)
# 設定響應體編碼
resp.encoding = 'utf-8'
if resp and resp.status_code == :
print 'update {0} success!'.format(object_id)
return json.loads(resp.text)
return None
# 封裝rest api的delete方法,根據對象ID删除一條記錄
# table_name:要删除的記錄所在的表名
# object_id:要删除的資料記錄的ID
def delete(table_name,object_id,app_id = APP_ID,rest_api_key = REST_API_KEY):
# 建構請求頭
headers = {}
headers['X-Bmob-Application-Id'] = app_id
headers['X-Bmob-REST-API-Key'] = rest_api_key
# 建構url
url = 'https://api.bmob.cn/1/classes/{table_name}/{object_id}'.format(table_name = table_name,object_id = object_id)
# 發起請求
resp = requests.delete(url,headers = headers,verify = False)
# 設定響應體編碼
resp.encoding = 'utf-8'
if resp and resp.status_code == :
print 'delete {0} success!'.format(object_id)
return json.loads(resp.text)
return None
# 查詢一個表中的所有資料
# table_name:要查詢的表名
def list(table_name,app_id = APP_ID,rest_api_key = REST_API_KEY):
# 建構請求頭
headers = {}
headers['X-Bmob-Application-Id'] = app_id
headers['X-Bmob-REST-API-Key'] = rest_api_key
# 建構url
url = 'https://api.bmob.cn/1/classes/{table_name}'.format(table_name = table_name)
# 發起請求
resp = requests.get(url,headers = headers,verify = False)
# 設定響應體編碼
resp.encoding = 'utf-8'
if resp and resp.status_code == :
return json.loads(resp.text)['results']
return None