- 上个问题修改过后 报错:处理远程请求时发生错误 请问有哪些影响这个请求的?
python: from flask import Flask, render_template, redirect, url_for, flash, request,jsonify import mysql.connector from mysql.connector import Error from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired from flask_cors import CORS app = Flask(__name__) app.secret_key = 'your_secret_key' # 用于 CSRF 保护 CORS(app) # 数据库配置 db_config = { 'host': 'localhost', 'database': 'mydb3', 'user': 'root', 'password': '123456' } # 假设有一个名为 garbage 的表,其结构如下: # CREATE TABLE `garbage` ( # `id` INT AUTO_INCREMENT PRIMARY KEY, # `type` VARCHAR(255), # `name` VARCHAR(255) # ); # 创建一个简易的表单类 class GarbageForm(FlaskForm): type = StringField('Type', validators=[DataRequired()]) name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Submit') @app.route('/') def home(): return "Hello, Welcome to the App!" # 返回JSON数据 @app.route('/api/get-garbage-data', methods=['GET']) def get_garbage_data_api(): connection = None try: connection = mysql.connector.connect(**db_config) if connection.is_connected(): dbcursor = connection.cursor() query = ("SELECT id, type, name FROM garbage") dbcursor.execute(query) data = dbcursor.fetchall() dbcursor.close() return jsonify(list(map(lambda x: {"id": x[0], "type": x[1], "name": x[2]}, data))) except Error as e: print(f"Error while connecting to MySQL: {e}") return jsonify({"status": "error", "message": str(e)}), 500 finally: if connection is not None: connection.close() # 主入口 if __name__ == '__main__': app.run(debug=True, host='0.0.0.0',port=5000) 微信小程序端 云函数index.js 和页面 index.js 以及最后报错 云函数index.js // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 // 云函数入口函数 exports.main = async (event, context) => { const axios = require('axios'); try { // 使用正确的URL替换下面的URL const response = await axios.get('https://2695e4eb.r21.cpolar.top/api/get-garbage-data'); if (response.status === 200) { const garbageData = response.data; const db = cloud.database(); const result = await Promise.all(garbageData.map(item => { return db.collection('garbage').add({ data: { type: item.type, name: item.name, } }); })); console.log('数据成功保存到云数据库:', result); return { success: true, result: result, message: '数据已成功保存到云数据库' }; } else { console.error('获取数据失败,HTTP状态码:', response.status); return { success: false, message: '获取数据失败,HTTP状态码:' + response.status }; } } catch (e) { console.error('处理远程请求时发生错误:', e); return { success: false, message: '处理远程请求时发生错误:' + e.message }; } }; y页面index.js: // pages/index/index.js // pages/index/index.js Page({ data: { garbageList: [], operationStatus: '', errorMessage: '', }, onLoad: function(options) { this.main(); }, main: function() { wx.cloud.callFunction({ name: 'main', data: {}, // 传递给云函数的参数 }).then(res => { if (res.result && res.result.success) { this.setData({ operationStatus: 'success', garbageList: res.result.result, errorMessage: res.result.message || '', }); console.log('数据获取并保存成功:', res.result); } else { this.setData({ operationStatus: 'error', errorMessage: res.result ? res.result.message : '未知错误', }); console.error('数据获取失败:', res.result ? res.result.message : '未知错误'); } }).catch(err => { this.setData({ operationStatus: 'error', errorMessage: '云函数调用失败:' + err.message, }); console.error('云函数调用失败:', err); }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } }) y页面 wxml: <view> <view wx:if="{{operationStatus === 'success'}}"> 数据获取并保存成功,请在云数据库中查看。 </view> <view wx:elif="{{operationStatus === 'error'}}"> 获取数据失败,请检查网络状态或联系管理员:{{errorMessage}} </view> <view wx:else> 正在获取数据,请稍候... </view> </view> 最后报错: index.js? [sm]:31 数据获取失败: 处理远程请求时发生错误:Request failed with status code 404(env: Windows,mp,1.06.2402040; lib: 2.25.4) (anonymous) @ index.js? [sm]:31 Promise.then (async) main @ index.js? [sm]:18 onLoad @ index.js? [sm]:11 求解答为什么会出现这个问题 做了core 也用postman 请求过 能获得数据但是换到微信小程序就不行了???? q求大佬解答
04-06 - 通讯后 微信小程序没法获取本地数据库数据 储存到云开发的云数据?
exports.main = async (event, context) => { const axios = require('axios'); // 确保在云函数目录下安装了axios,使用npm install axios try { // 使用正确的URL替换下面的URL const response = await axios.get('https://5b243195.r2.cpolar.top/api/get-garbage-data'); if (response.status === 200) { const garbageData = response.data; const db = cloud.database(); const result = await Promise.all(garbageData.map(item => { return db.collection('garbage').add({ data: { type: item.type, name: item.name, } }); })); console.log('数据成功保存到云数据库:', result); return { success: true, result: result, message: '数据已成功保存到云数据库' }; } else { console.error('获取数据失败,HTTP状态码:', response.status); return { success: false, message: '获取数据失败,HTTP状态码:' + response.status }; } } catch (e) { console.error('处理远程请求时发生错误:', e); return { success: false, message: '处理远程请求时发生错误:' + e.message }; } }; 小程序端的index.js // pages/index/index.js Page({ data: { garbageList: [], operationStatus: '', errorMessage: '', }, onLoad: function(options) { this.fetchAndSaveGarbageData(); }, fetchAndSaveGarbageData: function() { wx.cloud.callFunction({ name: 'fetchAndSaveGarbageData', data: {}, // 传递给云函数的参数 }).then(res => { if (res.result && res.result.success) { this.setData({ operationStatus: 'success', garbageList: res.result.result, errorMessage: res.result.message || '', }); console.log('数据获取并保存成功:', res.result); } else { this.setData({ operationStatus: 'error', errorMessage: res.result ? res.result.message : '未知错误', }); console.error('数据获取失败:', res.result ? res.result.message : '未知错误'); } }).catch(err => { this.setData({ operationStatus: 'error', errorMessage: '云函数调用失败:' + err.message, }); console.error('云函数调用失败:', err); }); }, });
04-04