微搭低代码实现登录注册功能

目录

  • 1 创建用户数据源
  • 2 实现登录逻辑
  • 3 搭建登录页面
  • 4 设置登录框
  • 5 实现登录的逻辑
  • 6 用户注册
  • 总结

原来产品在创建应用的时候可以创建模型应用,模型应用对应我们小程序的后端。最新的更新已经将模型应用的能力下线,那我们不得不自己实现一下后端的逻辑。

后端需要要求用户进行注册,注册完了之后进行登录。本文介绍一下如何借助API的能力实现注册和登录。

1 创建用户数据源

用户在注册的时候需要录入数据,需要先创建数据源。打开控制台,找到数据源,创建我们的用户表
在这里插入图片描述
表的话分为两个字段,分别为用户名和密码。

2 实现登录逻辑

表建好之后,我们需要实现登录的逻辑。找到APIs,创建一个API
在这里插入图片描述
选择自定义代码
在这里插入图片描述
输入名称和标识,点击创建,完成API的创建
在这里插入图片描述
API创建好之后,我们要创建一个方法
在这里插入图片描述
然后输入如下代码

/**
* 根据用户名和密码来验证用户是否成功登录,返回登录的结果
*
*/
module.exports = async function (params, context) {
let result = {}
const user = await context.callModel({
    name: 'zcyh_hh2jizk', // 数据模型标识,可以前往「数据源 - 数据模型」列表页查看
    methodName: 'wedaGetItem', // 数据模型方法标识,支持的方法可以前往「数据源 - 数据模型」的任一数据模型详情页查看当前模型支持的方法
    params: {
      where:[{
         "rel":"eq",
         "key":'yhm',
         "val":params.username
      },{
          "rel":"eq",
         "key":'mm',
         "val":params.password
      }
       
      ]
    }, // 数据模型方法的入参
  });
  
  if(user._id){
    result={
      'msg':'登录成功',
      'code':200,
      'token':user._id
    }
  }else{
    result = {
      'msg':'登录失败,密码不正确',
      'code':-1,
      'token':''
    }
  }

  // 这里返回数据,和出参结构映射
  return result;
};

代码的逻辑是根据用户名和密码去查找用户,如果找到表示登录成功,如果没有找到表示用户登录失败,然后将结果返回。

代码写好之后我们要增加好入参
在这里插入图片描述
然后点击方法测试,输入我们的入参,返回结果之后点击出参自动映射
在这里插入图片描述
这样我们的后端逻辑就搭建好了,接着实现一下前端页面

3 搭建登录页面

首先我们点击创建应用,创建一个空白应用
在这里插入图片描述
然后切换一下构建模式,选中PC端
在这里插入图片描述
先添加一个普通容器用来显示登录的背景图片
在这里插入图片描述
切换到样式,设置普通容器的宽为100%,高度为100vh。
在这里插入图片描述
默认的单位没有vh选项,我们需要输入一下CSS代码,点击CSS,输入样式代码
在这里插入图片描述
在这里插入图片描述

:root {
  width: 100%;
  height: 100vh;
}

然后从网上找一张背景图片,并且上传到素材里
在这里插入图片描述
在这里插入图片描述
我现在的图片的大小是1696*1620,你可以根据自己的需要进行选择,这个看你要适配的电脑的大小,通常16寸的电脑分辨率可以最大到1960像素,打开图片会左右稍有一点间距

素材上传完毕后,设置普通容器的背景图片,选择为我们刚刚的素材
在这里插入图片描述
增加两个样式,让背景图片可以填满容器,超出部分将进行裁剪,并且在图片的中心位置显示

background-position: center;
  background-size: cover;

定位改为相对
在这里插入图片描述

4 设置登录框

背景设置好了之后,我们来设置一下登录框,首先在背景的普通容器下边放置一个普通容器,设置宽度和高度为550px,背景为白色
在这里插入图片描述
设置定位为绝对定位,距右边8%

:root {
  width: 550PX;
  height: 550PX;
  background: rgb(255, 254, 254);
  position: absolute;
  left: auto;
  right: 8%;
}

在这里插入图片描述
还有就是垂直居中,也是通过定位来控制,距上边50%,然后再以自己为中心向上拉回来50%

:root {
  transform: translate(0%,-50%);
  width: 550PX;
  height: 550PX;
  background: rgb(255, 254, 254);
  position: absolute;
  left: auto;
  right: 8%;
  top: 50%;
}

之后放置三个普通容器,分别用来显示系统名称,输入框和版权信息
在这里插入图片描述
在这里插入图片描述

5 实现登录的逻辑

登录逻辑我们新建一个javascript方法,在代码区新建,选择javascript方法
在这里插入图片描述
在这里插入图片描述

export default async function ({ event, data }) {
  const username = $w.input1.value
  const password = $w.input2.value
  console.log('username',username,'password',password)
  const result = await $w.cloud.callDataSource({
    dataSourceName: 'userauth_spbuo7r',
    methodName: 'signIn',
    params: {
      username: username,
      password: password
    }, // 方法入参
  });
  console.log('result',result)
  if (result.code==200) {
    $w.utils.redirectTo({
      pageId: "u_zhu_ye", // 页面 Id
      packageName: "", // 主应用为空或不填,子模块填写 子包目录,查找位置 子包编辑器 --- 页面 --- 子包目录
      params: { key: "value" },
    });
    console.log('token',result.token)
    localStorage.setItem('token', result.token);
  } else {
    $w.utils.showToast({
      title: "登录失败,请输入正确的用户名和密码",
      icon: "error",
      duration: 2000, // 2秒
    });
  }

}

代码的逻辑是先获取输入框的值,然后调用API的登录方法,根据登录的结果来做页面的跳转

然后给登录按钮设置点击事件,选择我们刚刚建立的方法
在这里插入图片描述

6 用户注册

注册比较简单,我们创建一个页面,用表单容器实现即可
在这里插入图片描述

总结

我们本篇实现了PC后台系统的登录及注册功能,主要拆解为后端的实现和前端页面的搭建。初学者可能有疑问,微搭是否只能拖拽组件,其实还是可以写各种各样的代码的,以上就是一个实际的案例,供你参考。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目前进度记录

目前已经把之前记录的方法都实现了,目前的主函数可以写的更简单比如 int main(int argc, char* argv[]) {KernelClass::create_kernel();MPI_Init(&argc, &argv);kernel().mpi_manager.init_mpi(argc, argv);//创建种群int group1 kernel().conn_manger.c…

链表基础知识(一、单链表)

一、链表表示和实现 顺序表的问题及思考 问题: 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当…

【CANoe】CANoe手动发送XCP报文读取观测量

文章目录 1、硬件连接:配置CANoe的CAN端口,连接到ECU标定对应的CAN口2、配置CAN IG模块报文:连接XCP,读取观测量,断开XCP3、报文解析4、参考资料 1、硬件连接:配置CANoe的CAN端口,连接到ECU标定…

【JUC】二十七、synchronized锁升级之无锁

文章目录 1、背景2、Monitor、Java对象、线程如何关联起来的?3、synchronized锁升级4、锁升级之无锁 关于synchronized同步,能用无锁结构就不要用锁;能锁块,就不要锁整个方法;能用对象锁,就不要用类锁。 用…

探秘机器学习核心逻辑:梯度下降的迭代过程 (图文详解)

一 需求解函数 f() 和 g()函数分别为求y值和求导数的函数。 目的:求该函数的最小值: 代码: import numpy as np import matplotlib.pyplot as plt f lambda x : (x - 3.5) ** 2 - 4.5 * x 10 g lambda x : 2 * (x - 3.5) - 4.5x np.l…

1.3 什么是接口?什么是接口测试?

上一小节我们认识了C/S和B/S架构,那在B/S架构中,我们测试最常接触的,就是接口。本课程的重点是接口自动化测试,那同学们真的了解什么是接口吗?首先,我们从通俗的角度来看什么是接口。在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发…

ARM day8

1.题目&#xff1a;主机获取从机里面的温湿度数据&#xff0c;并打印出来 结果&#xff1a; 代码&#xff1a; main.c #include "iic.h"#include "si7006.h"void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){short tem;…

ThingsBoard 前端项目轮播图部件开发

前言 ThingsBoard 是目前 Github 上最流行的开源物联网平台&#xff08;14.6k Star&#xff09;&#xff0c;可以实现物联网项目的快速开发、管理和扩展, 是中小微企业物联网平台的不二之选。 本文介绍如何在 ThingsBoard 前端项目中开发轮播图部件。 产品需求 最近接到产品…

自动化测试、压力测试、持续集成

因为项目的原因&#xff0c;前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家&#xff0c;希望对需要的人有所帮助。 SoapUI 是什么&#xff1f; SoapUI 是一个开源测试工具&#xff0c;通过 soap/http 来检查、调用、实现 Web Service …

python笔记(1)安装环境

1&#xff0c;官网下载自己电脑位数的安装包 https://www.python.org/downloads/windows/ install时勾选中add to path&#xff0c;把路径自动添加到环境变量 安装pycharm就不讲了 安装后选中自己的python安装包 file-> setting->project:yourprojectname ->pyt…

k8s-8 ingress

ExternalName类型 当集群外的资源往集群内迁移时&#xff0c;地址并不稳定&#xff0c;访问域名或者访问方式等会产生变化&#xff1b; 使用svc的方式来做可以保证不会改变&#xff1a;内部直接访问svc&#xff1b;外部会在dns上加上解析&#xff0c;以确保访问到外部地址。 …

CleanMyMac X2024(Mac优化清理工具)v4.14.5中文版

CleanMyMac X是一款颇受欢迎的专业清理软件&#xff0c;拥有十多项强大的功能&#xff0c;可以进行系统清理、清空废纸篓、清除大旧型文件、程序卸载、除恶意软件、系统维护等等&#xff0c;并且这款清理软件操作简易&#xff0c;非常好上手&#xff0c;特别适用于那些刚入手苹…

数字中台建设指南(大数据平台)

制定数字中台战略规划&#xff1a;制定符合企业实际情况的数字中台战略规划&#xff0c;明确建设目标、重点任务和时间表。确定数字中台架构&#xff1a;根据企业业务需求和特点&#xff0c;确定数字中台的架构&#xff0c;包括技术架构、应用架构和数据架构。搭建数字中台基础…

java设计模式学习之【享元模式】

文章目录 引言享元模式简介定义与用途实现方式 使用场景优势与劣势在Java中的应用享元模式在Spring中的应用画图示例代码地址 引言 想象一下&#xff0c;您正在开发一个游戏&#xff0c;游戏中有成千上万的树木和建筑。如果每个对象都独立存储它的所有数据&#xff0c;将会占用…

postman接口测试系列: 时间戳和加密

在使用postman进行接口测试的时候&#xff0c;对于有些接口字段需要时间戳加密&#xff0c;这个时候我们就遇到2个问题&#xff0c;其一是接口中的时间戳如何得到&#xff1f;其二就是对于现在常用的md5加密操作如何在postman中使用代码实现呢&#xff1f; 下面我们以一个具体的…

蚂蚁SEO实用的网络baidu蜘蛛有哪些

网络蜘蛛是一种用于从互联网上自动抓取信息的程序。它们根据给定的规则和指令&#xff0c;遍历网站上的页面&#xff0c;收集信息并将其存储在数据库中。网络蜘蛛在搜索引擎、数据挖掘、信息提取等领域有着广泛的应用。本文将介绍一种实用的网络蜘蛛&#xff0c;并探讨其实现原…

快速二维相位解包算法基于按照非连续路径进行可靠性排序

Miguel Arevallilo Herra ez, David R. Burton, Michael J. Lalor, and Munther A. Gdeisat 摘要&#xff1a; 据我们所知&#xff0c;我们描述了一种新的相位展开技术。已经提出了几种基于首先展开最可靠像素的算法。这些仅限于连续路径&#xff0c;并且在定义起始像素时会遇…

结合eNSP实验讲VLAN,让理论生动

目录 一、VLAN的简介 1、定义 2、产生的原因--解决传统以太网的问题 3、VLAN的作用 4、VLAN数据帧格式--插入VLAN标签 5、VLAN的种类 5.1静态VLAN--常用 5.1.1静态vlan的范围 5.2动态VLAN 6、VLAN的三种端口类型 6.1Access接口 6.2Trunk接口 6.3Hybrid接口 二、配置…

Nodejs 第二十三章(Markdown 转 html)

Markdown 转换html 是一个非常常见的需求 什么是 Markdown ? Markdown 是一种轻量级标记语言&#xff0c;它允许人们使用易读易写的纯文本格式编写文档。 我们需要用到三个库实现 EJS&#xff1a;一款强大的JavaScript模板引擎&#xff0c;它可以帮助我们在HTML中嵌入动态内…

linux中堡垒机

堡垒机 堡垒机概念目的 安装Jumpserver使用资产管理资产列表创建需要管理的服务器创建用户权限管理页面进行资产授权操作视频 应用管理应用管理页面创建需要管理的应用&#xff0c;这里用数据库mysql举例进入后点击创建资产管理创建登录应用所需的用户选择创建mysql关系型数据库…