本文主要讲述python程序对微信云开发数据库的操作。
直接操作
直接操作指的是通过python程序对云开发数据库直接进行操作。
所有的操作前提都是在获取access_token下进行的,先通过下列代码获取access_token在进行接下来的操作。
def access_token():
""""
获取access_token
"""
APPID = '**********' //小程序ID
APPSECRET = '**************' //小程序秘钥
WECHAT_URL = '/cgi-bin/token?grant_type=client_credential&appid=' + APPID + '&secret=' + APPSECRET
response = requests.get(WECHAT_URL)
result = response.json()
return result["access_token"] //将返回值解析获取access_token
创建集合
此方法的创建只需要将集合的名字post给数据库即可。
def databaseCollectionAdd(access_token):
""""
创建数据库
"""
url = '/tcb/databasecollectionadd?access_token='+access_token
data={
"env":"******", //用户的数据库环境ID
"collection_name": "*******" //数据库集合的名称
}
response = requests.post(url, data=json.dumps(data))
result = response.json()
print(result) //将返回值打印
查询记录
将集合的名字Post即可返回该集合的信息。
def databaseQuery(access_token,collection_name):
""""
检索数据库
collection_name 集合的名称
.limit() 括号内的数值限定返回的记录数
"""
url = '/tcb/databasequery?access_token=' + access_token
data = {
"env": "*******", //用户的数据库环境ID
"query": "(\""+collection_name+"\").limit(100).get()"
}
response = requests.post(url, data=json.dumps(data))
result = response.json()
print(result) //将返回值打印
插入记录
通过Post集合名字和Add函数对内容(datas)的传输。
def databaseAdd(access_token,collection_name):
""""
新建记录并对内容进行定义
collection_name 集合的名称
"""
url = '/tcb/databaseadd?access_token=' + access_token
data = {
"env": "",
"query": "(\""+collection_name+"\").add({"+datas+"})"
}
datas=[{
"字段名称":"内容"
"""
这里主要是对创建记录的直接定义
"""
}]
response = requests.post(url, data=json.dumps(data))
result = response.json()
print(result) //将返回值打印
经测试这种创建记录的方式对datas的定义要求较为严格,一但定义不够严格会出现创建失败,所以建议通过间接的方式对数据库进行插入记录。
删除记录
通过Post集合名称将该集合直接从数据库移除。
def databaseQuery(access_token,collection_name):
""""
collection_name 集合的名称
"""
url = '/tcb/databasedelete?access_token=' + access_token
data = {
"env": "*******", //用户的数据库环境ID
"query": "(\""+collection_name+"\")..where({done:false}).remove()"
}
response = requests.post(url, data=json.dumps(data))
result = response.json()
print(result) //将返回值打印
更新记录
更新记录是对已有的记录内容进行修改,所以说想要对记录内容修改不可用.add()进行,通过.update()进行内容修改
def databaseUpdate(access_token,collection_name):
""""
.where() 该集合所在记录的检索
"""
url = '/tcb/databaseupdate?access_token=' + access_token
data = {
"env": "",
"query": "(\""+collection_name+"\").where({age:14}).update({data:{age: _.inc(1)}})""
}
"""
这个例子是将集合里age=14所有记录自增1
"""
response = requests.post(url, data=json.dumps(data))
result = response.json()
print(result) //将返回值打印
更新是对记录的操作,所以很需要.where()的帮助,请大家牢记该函数的使用。
总结
这是通过对微信小程序一段时间的学习后总结出来的,本作者是个新人,如有错误可指出,我将及时改正。
第二部分是通过调用云函数来对数据库进行操作,这种方法的BUG似乎比直接操作少。