宝塔部署 flask

启动命令 flask run --host 0.0.0.0 --port 6954

ip:端口访问

进程目录 /mnt/wanmeiflask/

if __name__ == '__main__':
    # 初始化数据库
    init_db()
    # 启动Flask应用
    app.run(debug=True, host='0.0.0.0', port=6954)

微信分享

  // 获取随机图片并保存为临时文件
    fetchRandomImages: function () {
      return new Promise((resolve, reject) => {
          wx.request({
              url: `${this.data.apiurl}/Api/Category/${this.data.currentApi}`, // 后端接口地址
              method: 'GET',
              responseType: 'arraybuffer',  // 请求响应类型为二进制数据
              success: async (res) => {
                  if (res.statusCode === 200) {
                      try {
                          // 将ArrayBuffer直接保存为临时文件
                          const tempFilePath = await this.saveArrayBufferAsTemp(res.data);
                          
                          // 记录临时文件路径,用于后续清理
                          this.setData({
                              tempImagePaths: [...this.data.tempImagePaths, tempFilePath]
                          });
                          
                          resolve(tempFilePath); // 返回临时文件路径
                          console.log('当前API:', this.data.currentApi);
                      } catch (error) {
                          console.error('保存临时文件失败:', error);
                          reject(error);
                      }
                  } else {
                      reject('获取图片失败');
                  }
              },
              fail: (err) => {
                  reject(err);
              }
          });
      });
  },如果遇上网络拥堵,那么响应速度会很慢,有优化的办法吗
      onShareAppMessage: function() { 
        console.log("分享按钮被点击!"+this.data.imgSrc); 
        // 根据点击分享,把临时文件imgSrc上传到服务器并标记固定id
        // 临时文件需要上传到服务器
        return new Promise((resolve) => {
        wx.uploadFile({ 
          url: `${this.data.apiurl}/Api/Category/UploadImageForShare`, // 后端接口地址  
          filePath: this.data.imgSrc,
          name: 'image',
          success: (uploadRes) => {
              wx.hideLoading(); 
              try {
                // 解析响应
                const result = JSON.parse(uploadRes.data);
                console.log('上传响应:', result); 
                // 检查响应结构
                if (result.successful && result.data && result.data.success) {
                  // 使用 data.imageUrl 而不是直接 imageUrl
                  const imageUrl = result.data.imageUrl;
                  console.log('上传成功,图片URL:', imageUrl);
                  resolve(this.createShareInfo(imageUrl));
                } else {
                  console.warn('上传失败:', result.message || '未知错误');
                  this.handleShareFallback(resolve);
                }
              } catch (e) {
                console.error('JSON解析错误:', e, '原始响应:', uploadRes.data);
                this.handleShareFallback(resolve);
              }
          },
          fail: (err) => {
              console.error('上传失败:', err);
              wx.hideLoading();
              this.handleShareFallback(resolve);
          }
      });  })
    }, 
    // 创建分享信息
createShareInfo: function(imageUrl) {
  return {
      title: "送你一张好看的超清壁纸",
      path: `/pages/index/picdetail?url=${encodeURIComponent(imageUrl)}&isShare=true&origin=${this.data.origin}`,
      // imageUrl: imageUrl // 分享缩略图
  };
},
    // 分享失败处理
    handleShareFallback: function(resolve) {
      wx.showToast({ title: '分享准备失败', icon: 'none' });
      resolve({
          title: "送你一张好看的超清壁纸",
          path: '/pages/index/index'
      });
    },应该是在前端生成一个随机id, 传递给后端保存为图片的名字,这样,就不需要等待上传完成,就可以直接分享 并且有固定的id