本文主要讲述python程序对微信云开发数据库的操作。
直接操作
直接操作指的是通过python程序对云开发数据库直接进行操作。
所有的操作前提都是在获取access_token下进行的,先通过下列代码获取access_token在进行接下来的操作。
1 2 3 4 5 6 7 8 9 10
| def access_token(): """" 获取access_token """ APPID = '**********' //小程序ID APPSECRET = '**************' //小程序秘钥 WECHAT_URL = 'https://api.weixin.qq.com/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给数据库即可。
1 2 3 4 5 6 7 8 9 10 11 12
| def databaseCollectionAdd(access_token): """" 创建数据库 """ url = 'https://api.weixin.qq.com/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即可返回该集合的信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def databaseQuery(access_token,collection_name): """" 检索数据库 collection_name 集合的名称 .limit() 括号内的数值限定返回的记录数 """ url = 'https://api.weixin.qq.com/tcb/databasequery?access_token=' + access_token data = { "env": "*******", //用户的数据库环境ID "query": "db.collection(\""+collection_name+"\").limit(100).get()" } response = requests.post(url, data=json.dumps(data)) result = response.json() print(result) //将返回值打印
|
插入记录
通过Post集合名字和Add函数对内容(datas)的传输。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| def databaseAdd(access_token,collection_name): """" 新建记录并对内容进行定义 collection_name 集合的名称 """ url = 'https://api.weixin.qq.com/tcb/databaseadd?access_token' + access_token data = { "env": "", "query": "db.collection(\""+collection_name+"\").add({"+datas+"})" } datas=[{ "字段名称":"内容" """ 这里主要是对创建记录的直接定义 """ }] response = requests.post(url, data=json.dumps(data)) result = response.json() print(result) //将返回值打印
|
经测试这种创建记录的方式对datas的定义要求较为严格,一但定义不够严格会出现创建失败,所以建议通过间接的方式对数据库进行插入记录。
删除记录
通过Post集合名称将该集合直接从数据库移除。
1 2 3 4 5 6 7 8 9 10 11 12
| def databaseQuery(access_token,collection_name): """" collection_name 集合的名称 """ url = 'https://api.weixin.qq.com/tcb/databasedelete?access_token=' + access_token data = { "env": "*******", //用户的数据库环境ID "query": "db.collection(\""+collection_name+"\")..where({done:false}).remove()" } response = requests.post(url, data=json.dumps(data)) result = response.json() print(result) //将返回值打印
|
更新记录
更新记录是对已有的记录内容进行修改,所以说想要对记录内容修改不可用.add()进行,通过.update()进行内容修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| def databaseUpdate(access_token,collection_name): """" .where() 该集合所在记录的检索 """ url = 'https://api.weixin.qq.com/tcb/databaseadd?access_token' + access_token data = { "env": "", "query": "db.collection(\""+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似乎比直接操作少。