首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【微信小程序+Python后台从0到1实战开发】02微信小程序基础事件及数据获取

【微信小程序+Python后台从0到1实战开发】02微信小程序基础事件及数据获取

作者头像
天道Vax的时间宝藏
发布于 2021-08-11 07:06:58
发布于 2021-08-11 07:06:58
1.2K02
代码可运行
举报
运行总次数:2
代码可运行

day02 微信小程序

1. 跳转

1.1 对标签绑定点击事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view bindtap="clickMe" data-nid="123" data-name="SD" >点我跳转</view>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Page({
  ...
  /**
   *  点击绑定的事件
  */
  clickMe:function(e){
    var nid = e.currentTarget.dataset.nid;
    console.log(nid);
  }
})

1.2 页面跳转

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.navigateTo({
    url: '/pages/redirect/redirect?id='+nid
})

跳转到的页面如果想要接受参数,可以在onLoad方法中接受。

redirect.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Page({
/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
  }
})

1.3 通过标签跳转

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<navigator url="/pages/redirect/redirect?id=666">跳转到新页面</navigator>

2.数据绑定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
    ...
    
    <div id="content"></div>
    
    <script>
        var name = "李业迟到";
        $('#content').val(name);
    </script>
    
</html>

vue.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
    <div id="app">
        <div>{{message}}</div>
    </div><script>
        new Vue({
          el: '#app',
          data: {
            message: '老男孩教育Python'
          }
        })
    </script>
    
</html>

2.1 基本显示

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view>数据1{{message}}</view>

展示数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/bind/bind.js
Page({/**
   * 页面的初始数据
   */
  data: {
    message:"沙雕李业",
  }
)}

2.2 数据更新

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view>数据2{{message}}</view>
<button bindtap="changeData">点击修改数据</button>

修改数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Page({
  data: {
    message:"沙雕李业",
  },
  changeData:function(){
    // 修改数据
    this.setData({ message: "大沙雕李业"});
  }
})

3.获取用户信息

方式一

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view bindtap="getUserName">获取当前用户名</view>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 getUserName:function(){
    // 调用微信提供的接口获取用户信息
    wx.getUserInfo({
      success: function (res) {
        // 调用成功后触发
        console.log('success',res)
      },
      fail:function(res){
        // 调用失败后触发
        console.log('fail', res)
      }
    })
  },

方式二

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button open-type="getUserInfo" bindgetuserinfo="xxxx">授权登录</button>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xxxx:function(){
    wx.getUserInfo({
      success: function (res) {
        // 调用成功后触发
        console.log('success', res)
      },
      fail: function (res) {
        // 调用失败后触发
        console.log('fail', res)
      }
    })
  }

示例

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/login/login.wxml-->
<view>当前用户名:{{name}}</view>
<view>
当前头像:<image src="{{path}}" style="height:200rpx;width:200rpx;"></image>
  </view>
<button open-type="getUserInfo" bindgetuserinfo="fetchInfo">获取信息button</button>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// pages/login/login.js
Page({/**
   * 页面的初始数据
   */
  data: {
      name:"",
      path: "/static/default.png"
  },
  fetchInfo:function(){
    var that = this;
    wx.getUserInfo({
      success:function(res){
        console.log(res);
        that.setData({
          name:res.userInfo.nickName,
          path:res.userInfo.avatarUrl
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},/**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},/**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},/**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},/**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},/**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},/**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},/**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {}
})

注意事项:

想要获取用户信息,必须经过用户授权(button)。

已授权

不授权,通过调用wx.openSetting

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 打开配置,手动授权。
// wx.openSetting({})

4.获取用户位置信息

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view bindtap="getLocalPath">{{localPath}}</view>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  data: {
      localPath:"请选择位置",
  },
  getLocalPath:function(){
    var that = this;
    wx.chooseLocation({
      success: function(res) {
        that.setData({localPath:res.address});
      },
    })
  },

5. for指令

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/goods/goods.wxml-->
<text>商品列表</text>
<view>
  <view wx:for="{{dataList}}" >{{index}} -  {{item}}</view>
  <view wx:for="{{dataList}}" wx:for-index="idx" wx:for-item="x">{{idx}} -  {{x}}</view>
</view>
<view>
  {{userInfo.name}}
  {{userInfo.age}}
</view>
<view>
  <view wx:for="{{userInfo}}">{{index}} - {{item}}</view>
</view>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 data: {
    dataList:["白浩为","海狗","常鑫"],
    userInfo:{
      name:"alex",
      age:18
    }
  },

6.获取图片

wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--pages/publish/publish.wxml-->
<view bindtap="uploadImage">请上传图片</view>
<view class="container">
  <image wx:for="{{imageList}}" src="{{item}}"></image>
</view>

js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  data: {
    imageList: ["/static/hg.jpg", "/static/hg.jpg"]
  },uploadImage:function(){
    var that = this;
​
    wx.chooseImage({
      count:9,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success:function(res){
        // 设置imageList,页面上图片自动修改。
        // that.setData({
        //   imageList: res.tempFilePaths
        // });// 默认图片 + 选择的图片; 
        that.setData({
          imageList: that.data.imageList.concat(res.tempFilePaths)
        });
      }
    });
  },

注意:图片目前只是上传到了内存。

总结

标签(组件)

  • text
  • view
  • image
  • navigator,跳转到其他页面(默认只能跳转到非tabbar页面)
  • button,按钮(特殊:建议获取用户信息时)

事件

bindtap

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view bindtap="func"></view><view bindtap="func" data-xx="123"></view>
func:function(e){
    e.currentTarget.dataset
}

api

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
navigateTo

wx.navigateTo({
    url: '/pages/redirect/redirect?id='+nid,
})
 

openSetting

wx.openSetting({})
 

getUserInfo

 wx.getUserInfo({
      success:function(res){
        console.log(res);
      }
    })

注意:结合button按钮实现

chooseLocation

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.chooseLocation({
      success: function(res) {
        
      },
    })
 

chooseImage

wx.chooseImage({
      count:9,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success:function(res){
        
      }
    });

数据绑定

for指令注意:setData + that

作业

  1. 拍卖详细页面

2.发布消息的页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<textarea></textarea>
  1. 功能点:
    • 拍卖列表页面通过for循环+后端数据展示信息。
    • 点击拍卖列表中的某项拍卖时,需要将自己的ID传递给 拍卖详细页面。
    • 上传图片
    • 选择位置
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Percona XtraDB Cluster网络安全配置(PXC5.7)
Percona XtraDB Cluster(下称PXC)数据库集群节点在多台机器中分布,尽管这些节点在大多数情况下,位于同一个局域网内,其安全依旧有必要重视。PXC在各节点之间进行通信,通常使用了4个端口。这4个端口需要防火墙准许放行。其次节点间数据通信并没有加密,如果要考虑这部分安全增强,也需要采取相应的策略。下文基于这两点进行描述。
Leshami
2018/08/06
7750
只允许特定的IP访问特定的端口
chuchur
2024/11/21
1.3K0
Linux 系统防火墙配置与管理
Linux 系统下管理防火墙规则的管理程序有两种,分别是iptables防火墙与firewall防火墙,虽然现在新版系统中早已不在使用Iptables,新版本系统中默认安装firewall管理程序,相比于Iptables更具有灵活性。
王瑞MVP
2022/12/28
3.1K0
linux防火墙配置
iptables 防火墙配置 iptables -F #清除预设表filter中的所有规则链的规则 iptables -X #清除预设表filter中使用者自定链中的规则 iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT #主动连接时支持回连 iptables -A I
东营浪人
2019/09/05
4K0
CentOS 防火墙常用命令
CentOS中7以下防火墙是 iptables,7是 firewalld,两者不尽相同,一开始以为 firewalld 比 iptables会更麻烦,其实 firewalld 比 iptables 方便多了,这里简单描述下配置。
小唐同学.
2022/02/23
1.6K0
在 Linux 中配置 firewalld 规则
“firewalld”是firewall daemon。它提供了一个动态管理的防火墙,带有一个非常强大的过滤系统,称为 Netfilter,由 Linux 内核提供。
用户8989785
2021/09/13
3.3K0
Centos7-Firewall防火墙基础讲解
(1)firewalld简介: 它是Linux上新用的防火墙软件它跟iptables防火墙是差不多的工具但比其更好使用与设置;
全栈工程师修炼指南
2020/10/13
2K0
firewalld防火墙配置IP伪装和端口转发
IP地址伪装: 1、通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 2、源地址更改为其NAT设备自己的接口地址。当返回的数据包到达时,会将目的地址修改 3、为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。 4、类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持ipv4,不支持ipv6。
小手冰凉
2019/09/10
3.4K0
firewalld防火墙配置IP伪装和端口转发
第七章·Firewalld防火墙实战
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1K0
第七章·Firewalld防火墙实战
Centos7 防火墙 firewalld 实用操作
Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
晓晨
2018/10/25
1.1K0
Rocky Linux 9常用命令备忘录
大家好,我是星哥,上次介绍了 Rocky Linux 9 系统安装配置图解教程并做简单配置
星哥玩云
2025/07/02
4340
Rocky Linux 9常用命令备忘录
CentOS7 防火墙设置
CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中对iptables防火墙进行了升级。
码客说
2019/10/21
2.5K0
linux防火墙(firewall)对端口和IP开放与限制
启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld 重新加载配置 firewall-cmd --reload 重启防火墙 service firewalld restart 查看已经开放的端口 firewall-cmd --list
友儿
2022/09/11
10.6K0
Linux基础——Firewalld防火墙(二)
处理运行时区域: 运行时模式下对区域进行的修改不是永久有效的。重新加载或者重启后修改将失效。 1、启用区域中的一种服务即给某个区域开启某个服务 firewall-cmd [--zone=区域] --
L宝宝聊IT
2018/06/27
1.5K3
Linux下的防火墙
假设自定义的 ssh 端口号为 11011,使用下面的命令来添加新端口的防火墙规则:
Xiongan-桃子
2023/06/10
6170
Linux下的防火墙
firewalld 指定IP访问某端口
(1) Postgresql端口设置。允许192.168.142.166访问5432端口
拓荒者
2019/03/15
7.7K0
Firewalld防火墙 禁止/限制 特定用户的IP访问,drop和reject区别
1.drop禁止特定ip连接ssh/22服务 firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=‘x.x.x.x/24‘ service name=‘ssh‘ drop" firewall-cmd --reload ##重新加载防火墙配置,不然firewall-cmd --list-all-zones不会显示刚加上的规则
院长技术
2020/08/25
4.3K0
Centos7 firewalld防火墙基本操作
前言 在centos6的版本中,防火墙使用的iptables,iptables是一个静态防火墙,就是说它不能够动态的添加开启端口,必须在配置文件中添加开启端口,然后重启iptables后才能生效。而centos7的防火墙使用的是firewalld,它是动态的,可以通过命令添加开启端口,不用重启服务就可以使改变生效。 防火墙管理 systemctl enable firewalld       #设置开机启动 systemctl start firewalld        #开启服务 system
行 者
2018/03/26
1.2K0
Centos7 firewalld防火墙基本操作
Linux防火墙firewalld安全设置
防火墙是具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙设置,大多数生产环境都建议开启,这样才能有效避免安全隐患等问题;本文文字偏多,但是建议大家还是花个十多分钟好好看一下防火墙的原理,这样便于后期问题排查,最后一小节也会有常用命令操作。
没有故事的陈师傅
2019/11/22
4.3K0
Linux firewalld防火墙学习总结
Firewalld是一种简单的、有状态的、基于区域(zone-based)的防火墙。策略和区域用于组织防火墙规则。网络在逻辑上被划分为多个区域,它们之间的流量可以通过策略进行管理。
授客
2024/11/21
2810
Linux firewalld防火墙学习总结
相关推荐
Percona XtraDB Cluster网络安全配置(PXC5.7)
更多 >
目录
  • day02 微信小程序
    • 1. 跳转
    • 2.数据绑定
    • 3.获取用户信息
    • 4.获取用户位置信息
    • 5. for指令
    • 6.获取图片
    • 总结
    • 作业
      • 2.发布消息的页面
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档