python操作小程序云数据库实现简单的增删改查功能


Posted in Python onJune 06, 2019

不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了

背景

也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通。

原本云数据库还是相对封闭的,只能通过自己的小程序或者云函数来进行访问,而现在,你只要调用官方提供的接口就能实现对云函数的增删改查了。

python操作小程序云数据库实现简单的增删改查功能

这里通过 python 作为演示来进行简单的测试,当然你也可以使用 java , php 等任何你熟悉的语言进行编码。

demo演示

其实实现起来还是比较简单的,通过小程序的 APPID 和 APPSECRET 来获取 ACCESS_TOKEN ,获取到调用凭证之后就可以根据文档提供的API对云数据库进行操作了。

首先我们来获取 ACCESS_TOKEN ,相关python代码如下:

'''
获取小程序token
'''
def get_access_token():
 url='{0}cgi-bin/token?grant_type=client_credential&appid={1}&secret={2}'.format(WECHAT_URL,APP_ID,APP_SECRET)
 response =requests.get(url)
 result=response.json()
 print(result)
 return result['access_token']

在云数据库中新增一个集合,代码如下:

'''
新增集合
'''
def add_collection(accessToken):
 url='{0}tcb/databasecollectionadd?access_token={1}'.format(WECHAT_URL,accessToken)
 data={
  "env":ENV,
  "collection_name":TEST_COLLECTION
 }
 response = requests.post(url,data=json.dumps(data),headers=HEADER)
 print('1.新增集合:'+response.text)

在集合中新增一笔数据,代码如下:

'''
新增数据
'''
def add_data(accessToken):
 url='{0}tcb/databaseadd?access_token={1}'.format(WECHAT_URL,accessToken)
 query='''
 db.collection("test_collection").add({
  data:{
   key:1,
   value:"2345"
  }
 })
 '''

 data={
  "env":ENV,
  "query":query
 }
 response = requests.post(url,data=json.dumps(data),headers=HEADER)
 print('2.新增数据:'+response.text)

查询某个集合中的数据,代码如下:

'''
查询数据
'''
def query_data(accessToken):
 url='{0}tcb/databasequery?access_token={1}'.format(WECHAT_URL,accessToken)
 query='''
 db.collection("test_collection").limit(10).skip(1).get()
 '''

 data={
  "env":ENV,
  "query":query
 }
 response = requests.post(url,data=json.dumps(data),headers=HEADER)
 print('3.查询数据:'+response.text)
 result=response.json()
 resultValue =json.loads(result['data'][0])
 return resultValue['_id']

删除该集合中的某笔数据,代码如下:

'''
删除数据
'''
def delete_data(accessToken,id):
 url='{0}tcb/databasedelete?access_token={1}'.format(WECHAT_URL,accessToken)
 query='''db.collection("test_collection").doc("{0}").remove()'''.format(id)

 data={
  "env":ENV,
  "query":query
 }
 response = requests.post(url,data=json.dumps(data),headers=HEADER)
 print('4.删除数据:'+response.text)

删除云数据库中某个集合,代码如下:

'''
删除集合
'''
def delete_collection(accessToken):
 url='{0}tcb/databasecollectiondelete?access_token={1}'.format(WECHAT_URL,accessToken)
 data={
  "env":ENV,
  "collection_name":TEST_COLLECTION
 }
 response = requests.post(url,data=json.dumps(data),headers=HEADER)
 print('5.删除集合:'+response.text)

是不是感觉挺简单的,就是调用相应的接口实现对云数据库相应的操作。

总结

官方开放了除小程序外访问云数据库的权限,使得每个基于云数据库的小程序不再是一座座鼓捣了。我们可以用该API去实现基于云开发的后台应用了。

就拿我的博客小程序来说,完全可以在我擅长的开发语言中找个后台模板,进行简单的二次开发,数据库使用小程序的云数据库,无缝连接我的博客小程序。

同样的,前期做的公众号文章同步的云函数,完全可以用自己擅长的语言来写了,最终保存到云数据库就可以了。

有兴趣的小伙伴可以行动起来了,利用云数据库,搭建属于你自己的小程序后台吧。

Ps.完整版demo源码可以访问我的github

https://github.com/CavinCao/python_libraries_demo

以上所述是小编给大家介绍的python操作小程序云数据库实现简单的增删改查功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Python datetime包函数简单介绍
Aug 28 Python
详解Python3中的 input() 函数
Mar 18 Python
弄清Pytorch显存的分配机制
Dec 10 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 Python
Python 如何实现文件自动去重
Jun 02 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 #Python
浅析Python3中的对象垃圾收集机制
Jun 06 #Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 #Python
使用Python实现毫秒级抢单功能
Jun 06 #Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 #Python
python opencv摄像头的简单应用
Jun 06 #Python
Python完成毫秒级抢淘宝大单功能
Jun 06 #Python
You might like
php 接口类与抽象类的实际作用
2009/11/26 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
PHP二维数组去重算法
2016/12/17 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
一端时间轮换的广告
2006/06/26 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery阻止冒泡事件使用模拟事件
2013/09/06 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
Node.js 基础教程之全局对象
2017/08/06 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
使用python实现生成用户信息
2017/03/20 Python
Python探索之ModelForm代码详解
2017/10/26 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
详解python while 函数及while和for的区别
2018/09/07 Python
Python 实现微信防撤回功能
2019/04/29 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
python 进程池pool使用详解
2020/10/15 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
解除聘用合同证明书范本
2014/09/11 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python