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='用户信息表,用于存储用户基本信息';
运行效果: