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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
python网页请求urllib2模块简单封装代码
Feb 07 Python
Python random模块(获取随机数)常用方法和使用例子
May 13 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
Python 私有化操作实例分析
Nov 21 Python
python脚本后台执行方式
Dec 21 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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读取MySQL数据代码
2008/06/05 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php数据访问之增删改查操作
2016/05/09 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
用javascript实现自定义标签
2007/05/08 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Python selenium自动化测试模型图解
2020/04/15 Python
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
小学英语听课心得体会
2016/01/14 职场文书
nginx优化的六点方法
2021/03/31 Servers
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS