微信小程序操作数据库

  • 1.1 wx.request()接口
    • 1.1.1 接口地址url
    • 1.1.2 请求参数data
    • 1.1.3 请求方法和请求头header
    • 1.1.4 success函数
  • 1.2 基于数据库的新闻列表页案例
  • 1.3 项目后端结构

1、数据库操作

  在Web环境中发起HTTPS请求是很常见的,但是微信小程序是腾讯内部的产品,不能直接打开一个外部的链接。例如,在微信小程序中不能直接打开www.taobao.com网站,但是,在小程序开发的时候,如果需要请求一个网站的内容或者服务,如何实现?虽然微信小程序里面不能直接访问外部链接,但是腾讯为开发者封装好了一个wx.request(object)的API。

1.1 wx.request()接口

  wx.request()是腾讯公司封装好的一个request请求的函数,类似于其他程序语言的自带函数,开发者只需把这些内置函数复制过来使用即可,无需注意函数底层代码实现部分。该接口的属性如下所示。

  微信公众平台官方给出的wx.request()示例代码如下:

wx.request({url: 'example.php', //仅为示例,并非真实的接口地址data: {x: '',y: ''},header: {'content-type': 'application/json' // 默认值},success (res) {console.log(res.data)}
})

1.1.1 接口地址url

  微信小程序里面的数据由接口地址url获取,它非常重要。其返回结果是JSON格式数据。因为JSON格式数据不仅处理起来方便,而且传输安全稳定,容易保存。所以,一般第三方服务商提供的接口返回的数据都是以JSON格式返回的。

  url是提供JSON格式数据的接口地址,一般是开发者专门开发的或第三方服务商提供的接口地址。例如快递查询和天气预报等功能在网络上都有相应JSON接口的调用地址,其中一些接口是商业收费的。

1.1.2 请求参数data

  当小程序前端对url发起HTTPS请求时,实际上跟在浏览器打开一个网址是一个道理,在浏览器打开网址http://127.0.0.1:8080/mini/detail?id=5,实际上是向这个域名所在的服务器发送了一个HTTPS请求,在这个请求里面使用了参数id=5,这里的id=5是在请求url时需要传递过去的参数。

url:'http://127.0.0.1:8080/mini/detail',
data:{id:'5'
}

等价于

url:'http://127.0.0.1:8080/mini/detail?id=5'

1.1.3 请求方法和请求头header

  wx.request()本质上时HTTP请求,header是请求的消息头,method是请求的方法。

示例代码如下:

method:'GET',
header:{'content-type':'application/json'
}method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'
}

  method取值’GET’或者’POST’(还有PUT和DELETE等)。

  需要说明的是,前端最终发送给服务器的数据是String类型,如果传入的data不是String类型,会被转换成String类型。转换规则如下:

  • 对于GET方法的数据,会将数据转换成query string。
  • 对于POST方法且header['content-type']application/json的数据,会对数据进行JSON序列化。
  • 对于POST方法且header['content-type']application/x-www-form-urlencoded的数据,会将数据转换成quert string。

1.1.4 success函数

  当一个HTTPS请求成功时,小程序会自动触发这个返回成功信息的函数,这个函数是腾讯公司封装好的函数,无须开发者自己编写。开发者获取的JSON数组在res.data中。

1.2 基于数据库的新闻列表页案例

  • pages/list/list.wxml代码如下:

    <view class="body">
    <!--文章列表模板 begin-->
    <template name="itmes"><navigator url="../../pages/detail/detail?id={{id}}" hover-class="navigator-hover"><view class="imgs"><image src="{{img}}" class="in-img" background-size="cover" model="scaleToFill"></image></view><view class="infos"><view class="title">{{title}}</view><view class="date">{{cTime}}</view></view></navigator>
    </template>
    <!--文章列表模板 end--><!--循环输出列表 begin-->
    <view wx:for="{{shuzu}}" class="list"><template is="itmes" data="{{...item}}" />
    </view>
    </view>
    

    pages/list/list.js

    Page({/** * 页面的初始数据** */data: {id1:1,shuzu: []},/** * 生命周期函数--监听页面加载*** */onLoad: function (options) {var that=thiswx.request({url: 'http://127.0.0.1:8001/wenzhang/selectList', //仅为示例,并非真实的接口地址data: {},header: {'content-type': 'application/json' // 默认值},success(res) {console.log(res)that.setData({shuzu:res.data})}})},dian:function(e){var a= e.target.idconsole.log(a)wx.navigateTo({url:"/pages/detail/detail?id="+a,}) },/*** 用户点击右上角分享*/onShareAppMessage: function () {  }
    })
    

    pages/list/list.wxss

    .body{height: 100%;display: flex;flex-direction: column;padding: 20rpx;
    }
    navigator { overflow: hidden;}
    .list {margin-bottom: 20rpx;height: 200rpx;position: relative;}
    .imgs {float: left;}
    .imgs image {display: block; width: 200rpx;height: 200rpx;}
    .infos {float: left; width: 480rpx; height: 200rpx;padding: 20rpx 0 0 20rpx;}
    .title {font-size: 20px;}
    .date {font-size: 16px;color: #aaa; position: absolute;bottom: 0;}
    .loadMore {text-align: center;margin: 30px;color: #aaa;font-size: 16px}
    page{background-color: #d1d3d4;
    }
    

程序运行结果

1.3 项目后端结构

后端SpringBoot搭建的,引入了mysql、mybatisplus、swagger、lombok等依赖。

数据库表结构:

主要的接口就两个:

也可以在swagger中测试下:

微信小程序操作数据库相关推荐

  1. 微信小程序——操作数据库

    案例一:统计用户的访问次数 业务需求: 统计每个用户对程序的访问次数 将访问次数存储到数据库中 访问次数应该与用户进行关联 业务逻辑: 如果用户是第一次访问此程序,向数据库添加一条记录:{openid ...

  2. 微信小程序操作mysql_微信小程序:数据库操作

    原标题:微信小程序:数据库操作 一.前提条件: 登录开发者工具软件,配置数据库数据集,操作如下: 打开云开发控制台 添加集合User 二.定义函数: //增加新纪录到云数据库 onAdd: funct ...

  3. Web端访问微信小程序云数据库

    撰写背景: 用微信小程序云开发做了一个与web管理平台配套的微信小程序,Web端需要对接(访问)到云环境的云数据库. 开门见山: 在微信开发者工具里先把云开发控制台打开, 设置->权限设置-&g ...

  4. 微信小程序调用数据库增删改查

    微信小程序调用数据库增删改查 php代码 获得数据库全部数据 js代码 增 wxml页面 js代码 删 js代码 改 js代码 查 js代码 输出展示 不足&改进想法 php代码 <?p ...

  5. 微信小程序云数据库定时清空(云函数定时触发)

    需求: 微信小程序云数据库某表仅保留当天数据,因此每天固定某时间清空一次 实现: 1.新建云函数timer 2.在timer/config.json中配置定时器 {"triggers&quo ...

  6. 微信小程序操作教程(个人用户注册)

    一.注册账户 注册地址:https://mp.weixin.qq.com 1.邮箱注册 注意:每个邮箱只能注册一个小程序账户:邮箱即用户名 请记录用户名及密码 2.邮箱激活:点击链接激活账号 3.信息 ...

  7. 如何在本机上利用IIS网页发布实现微信小程序与数据库之间的通信

    主要思想: 下面就login(登录)部分做出方案 微信小程序 首先要构建一个界面和逻辑模式 WXML部分: <!--pages/login/login.wxml--><!--< ...

  8. 微信小程序操作图片放大、缩小、旋转、拖拽

    微信小程序操作图片放大.缩小.旋转.拖拽 在开发小程序的时候遇到了上传图片,然后编辑的需求.打算网上找一下相关代码组件的,就不用自己搞这么麻烦.经过一番折腾,还是没有找到如意的,最后自己弄好了,记录一 ...

  9. 微信小程序,数据库中插入表情

    微信小程序,数据库中插入表情 错误提示 使用的是django做的后台 错误提示 django.db.utils.InternalError: (1366, "Incorrect string ...

  10. 微信小程序云数据库where查询语句字段名和字段值都可以是变量

    微信小程序云数据库where查询语句字段名和字段值都可以是变量 想要实现的功能 遇到的问题 js代码 想要实现的功能 界面代码 // An highlighted block <view cla ...

最新文章

  1. 从地理分类的计算机网格,第2章-地理空间象计算机表达(6-9学时).doc
  2. PIC单片机入门_PICC的指向RAM的指针
  3. 技术贴:asp.net实现唯一账户在线 禁止同一帐号同时在线 asp.net实现您的帐号在别处登录,您已被迫下线!...
  4. 解决在ascx使用outputcache就不可以设置用户控件自己的属性
  5. GlassFish linux下配置服务并自动启动
  6. 细说 Vue.js 3.2 关于响应式部分的优化
  7. Dotnet的局部函数和委托的对比
  8. bootstrapV4.6.0实现标签页(改造v3.3.7)- 代码篇
  9. ceph客户端使用_Ceph 基础篇 认证
  10. 虚拟网站禁用php,PHP虚拟主机建议禁用函数列表
  11. html5仿微博弹出,JS 仿腾讯发表微博的效果代码
  12. Rainyday.js – 傻眼了!竟然有如此逼真的雨滴效果
  13. 加速计(重力感应功能)的使用
  14. wps底板颜色怎么去掉_wps怎么把复制网页的灰色阴影去掉 底纹去掉方法
  15. 阿里巴巴 CTO 程立:开源是基础软件的源头!
  16. pythonalist是什么意思_3. Python3轻食丨一个故事看懂List所有用法:1年级1班的班级生活...
  17. 你必须知道的3D建模流程,最后一步是关键
  18. Timing Constraint介绍-Design Compiler(三)
  19. 除以用计算机按哪个键,电脑键盘÷号是哪个键?小编教你打出÷符号的操作方法...
  20. 金蝶EAS DEP脚本(4)—— 控件常用脚本之设置F7默认值

热门文章

  1. Python学习笔记之疑问 1:def 是什么意思
  2. java 保存对象_Java将对象保存到文件中/从文件中读取对象
  3. 电费管理系统php,25175水电费管理系统
  4. 认识计算机听课记录20篇,【中学信息技术听课记录】 信息技术听课记录15篇及评析_初中信息技术听课记录_高中信息技术听课记录20篇_东城教研...
  5. 基于AT89C51单片机的超声波传感器测距
  6. 2021年中国程序员薪资和生活现状调查:年薪5-25万之间占比66.3%
  7. HTML打地鼠小游戏代码
  8. 【第三方互联】5、网页添加QQ好友及QQ群组
  9. 3个关键维度读懂 [社区团购产品设计]
  10. LookupError(‘unknown encoding: GB2312‘)