欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

小程序云開發(fā)數(shù)據(jù)庫API - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

小程序云開發(fā)數(shù)據(jù)庫API

發(fā)表時間:2020-10-27

發(fā)布人:葵宇科技

瀏覽次數(shù):74

小程序云開發(fā)HTTP API使用

本人使用Python3.X作為開發(fā)版本,其他語言類似,格式自己調(diào)一下(requests.post發(fā)請求)
主要用于,作為與小程序關(guān)聯(lián)的數(shù)據(jù)提供平臺,使用腳本或者開發(fā)WEB端平臺為小程序提供數(shù)據(jù)、或作為小程序的數(shù)據(jù)的管理端(CRUD)

在完成小程序認證、小程序項目創(chuàng)建后(要勾選云開發(fā)),可以在小程序控制臺(開發(fā)-開發(fā)設(shè)置)獲取你的AppID(小程序ID)以及AppSecret(小程序密鑰)并在成員管理中為添加開發(fā)者權(quán)限

在這里插入圖片描述小程序秘鑰只能查看一次,再次查看會重置(切記保存)

以下為API調(diào)用:

云開發(fā)有各種調(diào)用限制,免費環(huán)境為5萬次讀請求,3萬次寫請求,access_token獲取有次數(shù)限制(具體在文檔里找一下),任一次數(shù)超過調(diào)用上限即會被停服到隔天凌晨1點左右,小程序控制臺有每月10次清空調(diào)用次數(shù)
首先獲取小程序access_token(有效時間120min,且再次獲取,上次的會失效)

GRANT_TYPE = 'client_credential'
APP_ID = '你的AppID'
APP_SECRET = '你的AppSecret'
        
url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type={0}&appid={1}&secret{2}'.format(GRANT_TYPE,APP_ID,APP_SECRET)
response = requests.get(url)
result = response.json()
# 如果頻繁使用的話可以把token寫到一個txt文件中,但小程序沒有提供token是否有效的接口
print(result['access_token'])

新增集合(數(shù)據(jù)表)

url = 'https://api.weixin.qq.com/tcb/databasecollectionadd?access_token={0}'.format(access_token)
data = {
	'env':'環(huán)境名',
	'collection_name': '集合名稱'
}
requests.post(url, data=json.dumps(data))

新增完集合后,CRUD基本差不太多

# url有些區(qū)別(第一個是count集合有多少數(shù)據(jù))
url = 'https://api.weixin.qq.com/tcb/databasecount?access_token={}'.format(access_token)
url = 'https://api.weixin.qq.com/tcb/databaseadd?access_token={}'.format(access_token)
url = 'https://api.weixin.qq.com/tcb/databasedelete?access_token={}'.format(access_token)
url = 'https://api.weixin.qq.com/tcb/databaseupdate?access_token={}'.format(access_token)
url = 'https://api.weixin.qq.com/tcb/databasequery?access_token={}'.format(access_token)
# 小程序的sql語句
"""
	小程序常用數(shù)據(jù)類型string、number(包括整型和浮點型)、array(數(shù)組)對應(yīng)python字符串格式化
	'%s'、%d、%s,字符串要用引號包起來,數(shù)字不能用引號,str(list)傳入
	query = "db.collection('集合名稱').where({字段名:'條件'})
	.add({data:{[鍵:'值']}})/remove()/update({data:{鍵:'值'}})/get()"
"""
# get還可以加“.limit().skip()”加載get()之前,limit服務(wù)端默認為10,最大為1000
# 組織數(shù)據(jù)包
data = {
	"env": "你的環(huán)境名稱在開發(fā)工具內(nèi)找到",
	"query": query
}
# 字符串格式化后一定要轉(zhuǎn)成json字符串
response = requests.post(url, data=json.dumps(data))
print(response.json())

基本的增刪改查如果不能滿足你的需求,那你可以試一下極其難用的聚合操作

# 除url和query語句不同外,基本相同,寫db_handle類時可以提高復(fù)用性
url = 'https://api.weixin.qq.com/tcb/databaseaggregate?access_token={}'.format(access_token)

# 下面是我在開發(fā)是用過的一個簡單的聚合(自己調(diào)一下縮進)
query = "db.collection('Book_information').aggregate()
.match({'is_delete':0}).sort({create_time:-1})
.lookup({
	from:'user_books',
	localField:'book_name',
	foreignField:'book_name',
	as:'book_info'})
.skip(%d).limit(10).end()" % (page * 10)
"""
	.aggregate():發(fā)起聚合操作
	.match():等于普通語句的.where()
	排序可以多字段排序
		聚合階段: .sort({'字段名':-1,'多字段'}):根據(jù)某一字段排序,-1降序
		普通查詢: .orderBy('字段名','asc').orderBy(多字段寫多個)
	.group({
		_id:$表內(nèi)字段名,
		num:$.sum(1),
		支持多字段,但多字段都為累加值,需要使用算數(shù)運算符
	})
	選擇輸出字段:
		聚合階段: .project({多字段,_id默認保留})
		普通查詢: .field({多字段,選擇要輸出的字段名})
	.lookup():連表查詢,上方演示為二種中的一種
		from:'連接的表名',
		localField:'主表要連接的字段',
		foreignField:'連接表的字段兩者相等即連接',
		as:'book_info'(連接后,key為book_info,value為列表)
	.end():聚合階段結(jié)束
"""
還有一個細節(jié)問題,普通查詢中,算數(shù)運算符和邏輯運算符要用“_.or”,而聚合操作中要使用“$.or”使用
常用邏輯運算符_.and/_.or
	單字段
		_.and({_.gt(50),_.(100)}) 或者 _.gt(50).and(_.lt(100))
	多字段
		_.and([{ progress: _.gt(50)},{tags: 'cloud'}])
		where或match中多條件默認帶and
比較運算符
		聚合階段時包括當前集合的字段名也要使用“$.”
		gt		大于 			llt		小于 			eq		等于
		gte		大于等于			lte		小于等于			neq		不等于
		還有普通查詢特有
			in,nin,可直接傳入一個數(shù)組
# 最后還有一個上傳文件到存儲
path = '文件路徑'
url = "https://api.weixin.qq.com/tcb/uploadfile?access_token={}".format(access_token)
data = {
    "env": "環(huán)境名稱",
    "path": "文件路徑(需要帶文件后綴名)" 
}
response = requests.post(url, data=json.dumps(data))
result = response.json()
file = {"file": open(path, "rb")}
# 兩個data中的文件路徑為小程序云存儲中的路徑,文件夾好像是要提前創(chuàng)建
data = {
    'key': '和data['path']相同',
    'Signature': result['authorization'],
    'x-cos-security-token': result['token'],
    'x-cos-meta-fileid': result['cos_file_id']
}
requests.post(result['url'], data=data, files=file)

# 獲取下載連接的話去存儲里找一個直接拼接就可以了
'https://[這里有一個環(huán)境名需要找].tcb.qcloud.la/news_images/1601278105.5322824.jpg'

小程序開發(fā)者社區(qū)是個鬼社區(qū),我只能幫你到這里了~

相關(guān)案例查看更多