微信小程序+python+mysql,实现登录功能

devtools/2024/10/20 9:31:15/
1.前端
<!-- login.wxml -->
<view class="container"><input type="text" placeholder="请输入用户名" bindinput="bindUsername" /><input type="password" placeholder="请输入密码" bindinput="bindPassword" /><button type="primary" bindtap="login">登录</button>
</view>
// login.js
Page({data: {username: '',password: ''},bindUsername: function (e) {this.setData({username: e.detail.value});},bindPassword: function (e) {this.setData({password: e.detail.value});},login: function () {const that = this;wx.request({url: 'http://127.0.0.1:5000/login',  method: 'POST',data: {username: that.data.username,password: that.data.password},success(res) {if (res.data.code === 200) {wx.showToast({title: '登录成功',icon: 'success',duration: 2000});} else {wx.showToast({title: '用户名或密码错误',icon: 'error',duration: 2000});}},fail() {wx.showToast({title: '请求失败',icon: 'error',duration: 2000});}});}
});
/* login.wxss */
.container {display: flex;flex-direction: column;align-items: center;justify-content: center;height: 100vh;background-color: #f0f2f5;
}.form-item {margin-bottom: 20px;width: 80%;
}.input {width: 100%;height: 40px;padding: 0 10px;border: 1px solid #ccc;border-radius: 5px;font-size: 16px;background-color: #fff;
}.btn {width: 80%;height: 45px;background-color: #007aff;color: #ffffff;text-align: center;line-height: 45px;border-radius: 5px;font-size: 18px;font-weight: bold;border: none;
}
2.后端
python"># server.py
from flask import Flask, request, jsonify
import pymysqlapp = Flask(__name__)# 数据库连接
def get_db_connection():connection = pymysql.connect(host='localhost',user='root',password='password',database='user_db',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)return connection# 登录接口
@app.route('/login', methods=['POST'])
def login():data = request.get_json()username = data.get('username')password = data.get('password')# 数据库查询用户信息connection = get_db_connection()try:with connection.cursor() as cursor:sql = "SELECT * FROM users WHERE username=%s AND password=%s"cursor.execute(sql, (username, password))user = cursor.fetchone()if user:return jsonify({'code': 200, 'message': '登录成功'})else:return jsonify({'code': 401, 'message': '用户名或密码错误'})finally:connection.close()if __name__ == '__main__':app.run(debug=True)
3.DB

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID,主键,自增', username VARCHAR(100) NOT NULL UNIQUE COMMENT '用户名,唯一且必填',password VARCHAR(255) NOT NULL COMMENT '密码(存储加密后的密码)',email VARCHAR(100) UNIQUE COMMENT '用户邮箱,唯一',phone_number VARCHAR(20) UNIQUE COMMENT '用户手机号码,唯一',role ENUM('admin', 'user') DEFAULT 'user' COMMENT '用户角色,默认为普通用户',register_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间,默认为记录创建的时间',last_login DATETIME COMMENT '上次登录时间,记录用户最近一次的登录时间',is_active BOOLEAN DEFAULT TRUE COMMENT '用户状态,是否激活,默认值为激活'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表,用于存储用户基本信息';
运行效果:


http://www.ppmy.cn/devtools/127249.html

相关文章

简历怎么写?怎么准备面试?怎么让面试官感兴趣?

视频地址&#xff1a;如何写好简历打开找工作的第一道门_哔哩哔哩_bilibili项目介绍不过关&#xff0c;项目责任不清楚&#xff0c;项目技术方案有漏洞&#xff0c;项目优势不明显&#xff0c;八股文没有准备好。都是面试大忌讳。, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚…

20240803 芯动科技 笔试

文章目录 1、单选题1.11.21.31.42、填空题2.12.23、问答题3.13.23.34、编程题4.14.24.3岗位:嵌入式软件工程师(25届校招)(J12042) 题型:4 道单选题,2 道填空题, 3 道简答题,3 道编程题 1、单选题 1.1 已知 5 个元素的出栈序列是 1,2,3,4,5,6 则对应的入栈顺序可能是 …

【VUE】Vue中的过滤器

Vue中的过滤器filter就是一种可以复用的数据转换函数&#xff0c;主要用来对视图中的数据进行处理和格式化。通过管道符“|”来连接数据和过滤器。主要用来对视图中的数据进行处理和格式化。使用过滤器可以简化模板中的数据处理逻辑&#xff0c;使代码更加简洁易懂。 Vue中的过…

MongoDB聚合管道(Aggregation Pipeline)

聚合管道&#xff08;Aggregation Pipeline&#xff09;是MongoDB中用于对数据进行处理和分析的一种强大机制。它由一系列的阶段&#xff08;Stage&#xff09;组成&#xff0c;每个阶段对输入的数据进行一种特定的操作&#xff0c;然后将结果传递给下一个阶段&#xff0c;就像…

使用开源的 Vue 移动端表单设计器创建表单

FcDesigner Vant 版是一款基于 Vue3.0 的移动端低代码可视化表单设计器工具&#xff0c;通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单&#xff0c;提高开发者对表单的开发效率&#xff0c;节省开发者的时间。 源码下载 | 演示地址 | 帮助文档 本项目采用 Vue3.0 和 …

基于C#开发游戏辅助工具的Windows底层相关方法详解

开发游戏辅助工具通常需要深入了解Windows操作系统的底层机制&#xff0c;以及如何与游戏进程进行有效交互。本文将基于C#语言&#xff0c;从Windows底层方法的角度来详细讲解开发游戏辅助工具的相关技术和概念。 一、游戏辅助工具的基本概述 游戏辅助工具&#xff0c;通常被称…

Redis的缓存问题

缓存雪崩 定义&#xff1a;缓存雪崩是指在某个时间段内&#xff0c;缓存中的大量数据同时失效或者大量的请求集中到某一个时间点发生&#xff0c;导致数据库压力骤增&#xff0c;甚至引起服务崩溃的现象。 原因&#xff1a;通常是由于缓存中的大量数据同时过期或者大量的请求集…

【海图界面上一些常见术语UTC、HDG、COG、SOG、LAT、LON的基本解释】

当然&#xff0c;以下是关于海图界面上一些常见术语UTC、HDG、COG、SOG、LAT、LON的基本解释&#xff1a; UTC (Coordinated Universal Time) 定义&#xff1a;UTC 是协调世界时&#xff08;Coordinated Universal Time&#xff09;的缩写&#xff0c;是一种与地球自转无关的…