微信小程序---使用云数据库实现登录功能

news2024/12/27 14:00:38

实现效果

在数据库找不到登录信息时弹出提示框

 

 一、开通云开发平台并创建数据表

进入微信官方文档按步骤操作即可

二、登录界面及样式 

login.wxml如下:

<view id="total">
<image src="../../images/user_cog_green.png"></image>
<form bindsubmit="create_login">
<!--姓名-->
<view id="t1">
<text>姓名</text><input type="text" name="username" id="use" placeholder="输入您的账号" value="{{username}}"></input>
</view>
<!--密码-->
<view id="t2">
<text>密码</text><input type="password" name="password" id="pass1" placeholder="输入您密码" value="{{password}}"></input>
</view>
<!--学号-->
<view id="t3">
<text>学号</text><input type="text" name="phone" id="pass2" placeholder="输入您的学号" value="{{phone}}"></input>
</view>
<!--登录按钮-->
<button bindtap="goto_index" id="btn1" form-type="submit"><text>登陆</text></button>
</form>

</view>

在 WXML 里添加一个<form>组件并绑定一个事件create_login,但需要注意的是,<form>组件只会提交所有被name属性修饰的表单域。<form>组件是小程序中非常常用的组件,关于表单的使用参见微信官方文档如下:

login.wxss文件如下:

 

/* pages/login/login.wxss */
#total{
    width:100%;
    height:1300rpx;
    background-color: rgb(245,245,245);
  }
  image{
    width:150rpx;
    height:150rpx;
    position: relative;
    left:300rpx;
    top:100rpx;
  }
  #t1{
    width:100%;
    height:125rpx;
    background-color: white;
    position: relative;
    top:200rpx;
  }
  #t2{
    width:100%;
    height:125rpx;
    background-color: white;
    position: relative;
    top:210rpx;
  }
  #t3{
    width:100%;
    height:125rpx;
    background-color: white;
    position: relative;
    top:220rpx;
  }
  #t1 text{
  position: relative;
  left:40rpx;
  top:40rpx;
  color: rgb(143, 143, 143);
  }
  #use{
    width:400rpx;
    height:80rpx;
    margin-left: 200rpx;
    position: relative;
    bottom: 25rpx;
  }
  #t2 text{
  position: relative;
  left:40rpx;
  top:40rpx;
  color: rgb(143, 143, 143);
  }
  #pass1{
    width:400rpx;
    height:80rpx;
    margin-left: 200rpx;
    position: relative;
    bottom: 25rpx;
  }
  #t3 text{
  position: relative;
  left:40rpx;
  top:40rpx;
  color: rgb(143, 143, 143);
  }
  #pass2{
    width:400rpx;
    height:80rpx;
    margin-left: 200rpx;
    position: relative;
    bottom: 25rpx;
  }
  #btn1{
    position: relative;
    top:350rpx;
    background-color:rgb(51, 204, 170);
    width:600rpx;
    border-radius: 50rpx;
  }
  #btn1 text{
    color:white;
    font-size: 39rpx;
  }
  #btn2{
    position: relative;
    top:370rpx;
    right:230rpx;
    background-color: rgb(245, 245, 245);
  }
  #btn2::after{
    border: none;
  }
  #btn2 text{
    color:black;
    font-size: 39rpx;
  }
  #btn3{
    position: relative;
    top:261rpx;
    left:200rpx;
    width:250rpx;
    background-color: rgb(245, 245, 245);
  }
  #btn3::after{
    border: none;
  }
  #btn3 text{
    color:black;
    font-size: 39rpx;
  }

在界面布局上这里使用了相对布局而没有使用css中非常普遍的flex布局,是因为考虑到组件数量较少而且较为分散。

三、js功能实现

js中主要对事件create_login的实现,在这个函数中连接上云数据库,从数据库中查找姓名、密码、学号为输入字符串的记录是否存在,若存在则可以登录成功,不存在则弹出模态框,在login.js中加入如下函数即可:

create_login: function (e) {
   
    wx.cloud.database().collection('students')
        .where({
            name:e.detail.value["username"],
            password:e.detail.value["password"],
            u_id:e.detail.value["phone"],
        })
        .get()
        .then(res=>{
            console.log('请求成功',res.data)
           if(res.data[0] == null)
           {
            wx.showModal({
                title: '登录失败',
                content: '数据库匹配失败'//session中用户名和密码不为空触发
              });
           }
           else{
            app.globalData.studentId = res.data[0]._id;
           
              wx.switchTab({
                url: '../form/form',
              })
           }
        })
        .catch(err=>{
            console.log('请求失败',err)
            wx.showToast({
                title:"请求失败",
              })
        })
    
  },

如程序所示,在云数据库中,新增的数据表名为‘students’,表中必须包含的三个字段为name、password、u_id,为方便调试字段类型最好设置为string类型,点击登录按钮时<form>组件把用户输入的信息传入students表的相应字段,即可查询出是否匹配。登录成功后学生id被传入全局变量,界面跳转到tab页面中的指定tab页。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/568145.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手写操作系统+手写网络协议栈,太硬核了

内功决定一个程序员的上限&#xff0c;这是每个程序员都知道的道理。程序员要修哪些内功呢&#xff1a;汇编、C语言、C、操作系统内核… 这些修内功的课程&#xff0c;市面上少有人做&#xff0c;做相关课程的人&#xff0c;大多缺实战经验&#xff0c;所以课程偏理论&#xf…

chatgpt赋能python:PythonShebang介绍:如何为python脚本添加shebang?

Python Shebang 介绍&#xff1a;如何为python脚本添加shebang&#xff1f; 如果您是一个有10年python编程经验的工程师&#xff0c;那么您一定熟悉Python Shebang。在这篇文章中&#xff0c;我们将深入探讨Python Shebang是什么&#xff0c;为什么它很重要&#xff0c;并演示…

如何检测docker是否支持host.docker.internal

要检查您的 Docker 是否支持 host.docker.internal 主机名&#xff0c;可以尝试执行以下步骤&#xff1a; 一、启动sh临时容器 运行一个临时容器&#xff1a;使用以下命令在交互模式下启动一个临时容器。 docker run -it --rm alpine sh这将在 Alpine Linux 容器中启动一个交…

杂记(四)

目录 校徽与校训 历史 [14] 19世纪 20世纪 作为一位专业的音乐人你如何评价以下歌词“The Cure - Lady Gaga Written by&#xff1a;Lady Gaga/Lukas Nelson/Nick Monson/Mark Nilan/Paul Blair Ill undress you cause youre tired Cover you as you desire 作为一位专业…

JavaEE进阶5/24

1.IOC 控制反转 把对象的生命周期的控制权由程序员反转给其他人。 控制反转减少了代码的耦合性。 哪里发生了反转&#xff1f;f 1.对象生命周期的控制权由程序员转交给Spring 2.对象创建的顺序反转了&#xff0c;原本程序员通过new来创建的是从外层到内层的&#xff0c;控制反转…

Turtlebot4 和 Turtlebot3 和 Turtlebot2 ROS开源机器人说明及参数对比

一、TB4和TB3产品参数对比&#xff1a; 二、Turtlebot 3和Turtlebot 4的比较&#xff1a; 很多未接触过Turtlebot ROS机器人系列的用户&#xff0c;看到TB3和TB4两型号&#xff0c;就会很自然地认为TB4肯定比TB3高级&#xff0c;会问到TB4和TB3的区别&#xff0c;TB4进行了哪些…

k8s入门实战-Service

k8s入门实战-Service Service 和 Label Service 通过一组 Pod 路由通信。Service 是一种抽象&#xff0c;它允许 Pod 死亡并在 Kubernetes 中复制&#xff0c;而不会影响应用程序。在依赖的 Pod (如应用程序中的前端和后端组件)之间进行发现和路由是由Kubernetes Service 处理…

基于PHP的毕业设计管理系统的设计与实现(源码+配套论文)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题&#xff0c;今天给…

“懒人”设计师必备的AI绘画软件,轻松实现建筑设计闭环

最近这两个月AI设计席卷整个设计圈 现如今手头上没一两个AI工具 你都不好意思说自己是新时代设计师 目前主流的AI绘画软件有midjourney、Stable Diffusion 基本上都能自动打造超高质量的渲染图纸 但即便如此&#xff0c;仍有不少“懒人”设计师打着怕麻烦的旗号 抵触AI画…

10+秒,AIGC炸出抖音小红书爆款!国产Fashion Diffusion颠覆时尚行业

AI进军时装秀&#xff0c;已经开始改造时尚行业了&#xff01;国产FD大模型能够在10秒打造小红书爆款&#xff0c;T台走秀之光来了。 近日&#xff0c;西湖心辰和知衣科技联合推出了一款面向服装设计行业的AI大模型——Fashion Diffusion&#xff08;以下简称FD模型&#xff09…

STM32F4新建寄存器版本MDK(Keil5)工程(正点原子)

1. 前期准备 1.1 下载 STM32Cube 固件包 1.1.1 ST官网搜索STM32Cube 首先进入ST官网&#xff0c;在搜索栏输入 STM32Cube 找到 STM32CubeF4 点击进去 在这里可以选择版本进行下载&#xff0c;这里我选择1.26.0&#xff08;后续不使用官方的因为太冗杂了&#xff0c;这里只…

CSDN周赛回顾

CSDN周赛回顾 55期参赛体验近两期难度题型报告 参赛回顾CSDN 题库每日一练举报题库 最后的吐槽新题目相似度判定奖品 55期参赛体验 近两期难度 最近的题目有点难度了&#xff0c;老顾个人感觉至少达到了中级算法程度了&#xff0c;所以老顾的成绩变得稀碎。。。。 题型 再来…

Centos7 第一次正常连接, 隔天连接不上

记录现象: ping:www.baidu.com bash: ping:www.baidu.com: 未找到命令... 其他没有配置错的情况下 1. 原因 vi /etc/sysconfig/network-scripts/ifcfg-ens33 因为配置的静态链接所以 不需要NetworkManager 2. 解决方案 a. 关闭NetworkManager systemctl stop NetworkMa…

Docker 下 OnlyOffice 社区版安装

一、官方信息 官网地址&#xff1a;ONLYOFFICE - Secure Online Office | ONLYOFFICE 官方文档&#xff1a;Installing ONLYOFFICE Docs for Docker on a local server - ONLYOFFICE 二、介绍 ONLYOFFICE Docs是一个在线办公套件&#xff0c;包括文本、电子表格和演示文稿的…

小红书产品运营的书有哪些,爆款笔记的套路

随着小红书平台的规模逐渐扩大&#xff0c;已经不仅仅局限于单一的产业了&#xff0c;甚至于出现了多元化的一个现象。有关小红书运营的书的出版就是最好的证明。今天&#xff0c;就来和大家一起探讨一下小红书产品运营的书有哪些&#xff0c;爆款笔记的套路。 一、小红书运营的…

十四、进程信号

文章目录 一、什么是信号二、信号列表&#xff08;一&#xff09;查看系统定义的信号列表 三、信号处理四、信号产生&#xff08;一&#xff09;通过终端按键产生信号1.什么是核心转储&#xff1f;2.核心转储功能有什么用&#xff1f;3.core dump标志 &#xff08;二&#xff0…

突围低代码下半场,未来悬而未决

低代码行业的整个赛道的未来依然蒙着一层充满未知的迷雾&#xff0c;最开始&#xff0c;低代码的目的是让不具有软件开发能力的用户也能根据自己的需要创建各种应用程序&#xff0c;由此也诞生了“IT革命”“抢走程序员饭碗”等噱头。 但噱头归噱头&#xff0c;程序员的饭碗并…

软件测试之自动化测试详解

文章目录 一.前言二.selenium介绍三.selenium的组成部分四.Selenium的环境搭建下载浏览器配置环境变量验证环境是否搭建成功 五.Selenium的API打开浏览器元素的定位操作测试对象等待操作信息获取鼠标操作键盘操作选项操作浏览器操作 六.需要用到的包 一.前言 自动化测试指软件…

软件接口测试有什么作用?接口测试有哪些好用工具?

一、软件接口测试有什么作用? 在软件开发过程中&#xff0c;接口是不可避免的一部分。接口测试是为了检查软件系统中不同模块之间的接口能否正常工作&#xff0c;以及模块之间的数据是否能够互相传输而进行的测试。接口测试的主要作用包括保证系统区域间的互通性、降低软件的…

树莓派 CM4 RTC 时间同步

需求&#xff1a;树莓派 接pcf85063a RTC模块进行时间同步&#xff0c;上层使用Qt 开发应用&#xff0c;进行时间的读取与设置 一,树莓派配置&#xff1a; /boot/config.ini 文件 修改 二,读取时间 直接读取系统时间 TIME TimerManager::getSystemLocalTime() {TIME t;time…