python对微信云开发数据库的操作(一)

时间:2025-04-13 07:53:06

本文主要讲述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似乎比直接操作少。