本文将接前文,继续讲述python程序对微信云开发数据库的操作。

二、间接操作

间接操作指的是python通过云函数对云开发数据库进行操作。所有的操作都是在获取access_token的前提下进行的,不懂的同学可以参考:链接: link.
同时由于请求python请求云函数的代码基本类似,只有在data里面进行参数的变换即可,给出一个例子:

    def xxxx(self):
        //在函数括号内需要添加参数
        ACCESS_TOKEN = xxx   //获取的access_token
        ENV = xxx                      //用户的数据库环境ID
        FUNCTION_NAME = xxx   //所要执行的云函数名
        url = 'https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=' + ACCESS_TOKEN + '&env=' + ENV + '&name=' + FUNCTION_NAME
        data = {
        //所要传输的参数
        }
        response = requests.post(url=url, data=json.dumps(data))
        result = response.json()

2.1创建集合

云函数:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.createCollection(event.id)
  //event.id是python传输的数据,为该集合的名字
}

python:

    def createCollection(self,id):
    ....
    ....
    data = {
            'id':id,
        }
    ....

查询记录

云函数:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection(event.id).get();
  //event.id是python传输的数据,为该集合的名字
  //.get()调用云函数方法,获取该集合下的所有数据,可以加上.where()筛选,后续更新、新增等操作类似
}

python:

    def databaseQuery(self,id):
    ....
    ....
    data = {
            'id':id,
        }
    ....

插入记录

云函数:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection(event.id).add({
        data: {
           description: event.description,
           due: event.due
    }
  });
  //event.id是python传输的数据,为该集合的名字
  //.add()新增记录函数
}

python:

def databaseQuery(self,id):
    ....
    ....
    description=xxxx
    due=xxxx
    data = {
            'id':id,
            'description': description,
           'due': due
        }
    ....

删除记录

云函数:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection(event.id).remove();
  //event.id是python传输的数据,为该集合的名字
  //.remove()删除记录函数
  //可用.doc().where()等定位具体某种信息
}

python:

def databaseQuery(self,id):
    ....
    ....
    description=xxxx
    due=xxxx
    data = {
            'id':id,
        }
    ....

更新记录

云函数:

const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
  return await db.collection(event.id).update();
  //event.id是python传输的数据,为该集合的名字
  //.update()更新记录函数
  //可用.doc().where()等定位具体某种信息
}

python:

def databaseQuery(self,id):
    ....
    ....
    description=xxxx
    due=xxxx
    data = {
            'id':id,
        }
    ....

总结

隔了好久终于把第二部分写了,也很感谢第一部分有些网友指出的错误,已经修改,这篇一样,希望得到大家的交流指点。

也欢迎来我的[个人博客](ZLF - 钟林锋的博客 (zlfeng.cn))交流

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐