返回顶部
首页 > 资讯 > 后端开发 > Python >微信小程序前端怎么调用python后端的模型
  • 329
分享到

微信小程序前端怎么调用python后端的模型

2023-06-30 07:06:40 329人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“微信小程序前端怎么调用python后端的模型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序前端怎么调用Python后端的模型”文章能帮助大家解决问题。需求:小程序端拍照调

这篇文章主要介绍“微信小程序前端怎么调用python后端的模型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序前端怎么调用Python后端的模型”文章能帮助大家解决问题。

需求:

小程序端拍照调用python训练好的图片分类模型。实现图片分类识别的功能。

微信小程序端:

重点在chooseImage函数中,根据图片路径获取到图片传递给flask的url;

Page({    data: {        SHOW_TOP: true,        canRecordStart: false,    },    data: {        tempFilePaths:'',        sourceType: ['camera', 'album']      },    isSpeaking: false,    accessToken: "",    onLoad: function (options) {                console.log("onLoad!");        this.setHeader();        var that=this        wx.showShareMenu({            withShareTicket: true //要求小程序返回分享目标信息        });        var isshowed = wx.getStorageSync("tip");        if (isShowed != 1) {            setTimeout(() => {                this.setData({                    SHOW_TOP: false                })                wx.setStorageSync("tip", 1)            }, 3 * 1000)        } else {            this.setData({                SHOW_TOP: false            })        };    },    },     //头像点击处理事件,使用wx.showActionSheet()调用菜单栏 buttonclick: function () {    const that = this    wx.showActionSheet({      itemList: ['拍照', '相册'],      itemColor: '',      //成功时回调      success: function (res) {        if (!res.cancel) {                    that.chooseImage(res.tapindex)        }      },      setHeader(){    const tempFilePaths = wx.getStorageSync('tempFilePaths');    if (tempFilePaths) {      this.setData({        tempFilePaths: tempFilePaths      })    } else {      this.setData({        tempFilePaths: '/images/camera.png'      })    }  },  chooseImage(tapIndex) {    const checkeddata = true    const that = this    wx.chooseImage({    //count表示一次可以选择多少照片      count: 1,      //sizeType所选的图片的尺寸,original原图,compressed压缩图      sizeType: ['original', 'compressed'],      //如果sourceType为camera则调用摄像头,为album时调用相册      sourceType: [that.data.sourceType[tapIndex]],      success(res) {        // tempFilePath可以作为img标签的src属性显示图片        console.log(res);        const tempFilePaths = res.tempFilePaths        //将选择到的图片缓存到本地storage中        wx.setStorageSync('tempFilePaths', tempFilePaths)                that.setHeader();        // wx.showToast({        //   title: '设置成功',        //   icon: 'none',        // //   duration: 2000        // })        wx.showLoading({            title: '识别中...',        })                var team_image = wx.getFileSystemManager().readFileSync(res.tempFilePaths[0], "base64")        wx.request({          url: 'Http://127.0.0.1:5000/upload', //API地址,upload是我给路由起的名字,参照下面的python代码                     method: "POST",          header: {                     'content-type': "application/x-www-fORM-urlencoded",                    },          data: {image: team_image},//将数据传给后端             success: function (res) {            console.log(res.data);  //控制台输出返回数据              wx.hideLoading()            wx.showModal({                title: '识别结果',                 confirmText: "识别正确",                cancelText:"识别错误",                content: res.data,                 success: function(res) {                 if (res.confirm) {                console.log('识别正确')                } else if (res.cancel) {                console.log('重新识别')                }                }                })               }        })      }    })  },});

flask端:

将图片裁剪,填充,调用自己训练保存最优的模型,用softmax处理结果矩阵,最后得到预测种类

coding=utf-8from flask import Flask, render_template, request, JSONifyfrom werkzeug.utils import secure_filenamefrom datetime import timedeltafrom flask import Flask, render_template, requestimport torchvision.transforms as transformsfrom PIL import Imagefrom torchvision import modelsimport osimport torchimport jsonimport numpy as npimport torch.nn as nnimport matplotlib.pyplot as pltimport base64app = Flask(__name__)def softmax(x):    exp_x = np.exp(x)    softmax_x = exp_x / np.sum(exp_x, 0)    return softmax_xwith open('dir_label.txt', 'r', encoding='utf-8') as f:    labels = f.readlines()    print("oldlabels:",labels)    labels = list(map(lambda x: x.strip().split('\t'), labels))    print("newlabels:",labels)def padding_black(img):    w, h = img.size    scale = 224. / max(w, h)    img_fg = img.resize([int(x) for x in [w * scale, h * scale]])    size_fg = img_fg.size    size_bg = 224    img_bg = Image.new("RGB", (size_bg, size_bg))    img_bg.paste(img_fg, ((size_bg - size_fg[0]) // 2,                              (size_bg - size_fg[1]) // 2))    img = img_bg    return img# 输出@app.route('/')def hello_world():    return 'Hello World!'# 设置允许的文件格式ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp'])def allowed_file(filename):    return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS# 设置静态文件缓存过期时间app.send_file_max_age_default = timedelta(seconds=1)# 添加路由@app.route('/upload', methods=['POST', 'GET'])def upload():    if request.method == 'POST':        # 通过file标签获取文件        team_image = base64.b64decode(request.form.get("image"))  # 队base64进行解码还原。        with open("static/111111.jpg", "wb") as f:            f.write(team_image)        image = Image.open("static/111111.jpg")        # image = Image.open('laji.jpg')        image = image.convert('RGB')        image = padding_black(image)        transform1 = transforms.Compose([            transforms.Resize(224),            transforms.ToTensor(),        ])        image = transform1(image)        image = image.unsqueeze(0)        # image = torch.unsqueeze(image, dim=0).float()        print(image.shape)        model = models.resnet50(pretrained=False)        fc_inputs = model.fc.in_features        model.fc = nn.Linear(fc_inputs, 214)        # model = model.cuda()        # 加载训练好的模型        checkpoint = torch.load('model_best_checkpoint_resnet50.pth.tar')        model.load_state_dict(checkpoint['state_dict'])        model.eval()        src = image.numpy()        src = src.reshape(3, 224, 224)        src = np.transpose(src, (1, 2, 0))        # image = image.cuda()        # label = label.cuda()        pred = model(image)        pred = pred.data.cpu().numpy()[0]        score = softmax(pred)        pred_id = np.argmax(score)        plt.imshow(src)        print('预测结果:', labels[pred_id][0])        # return labels[pred_id][0];        return json.dumps(labels[pred_id][0], ensure_ascii=False)//将预测结果传回给前端        # plt.show()    #     return render_template('upload_ok.html')    #     重新返回上传界面    # return render_template('upload.html')if __name__ == '__main__':    app.run(debug=False)

大致的效果:

微信小程序前端怎么调用python后端的模型

微信小程序前端怎么调用python后端的模型

关于“微信小程序前端怎么调用python后端的模型”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 微信小程序前端怎么调用python后端的模型

本文链接: https://lsjlt.com/news/327708.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序前端怎么调用python后端的模型
    这篇文章主要介绍“微信小程序前端怎么调用python后端的模型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序前端怎么调用python后端的模型”文章能帮助大家解决问题。需求:小程序端拍照调...
    99+
    2023-06-30
  • 微信小程序前端如何调用python后端的模型详解
    目录需求:微信小程序端:flask端:总结需求: 小程序端拍照调用python训练好的图片分类模型。实现图片分类识别的功能。 微信小程序端: 重点在chooseImage函数中,根据...
    99+
    2024-04-02
  • 微信小程序练手实战:前端+后端(Java)
    1.  前言 现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信小程序,最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的一些经验和一些心得吧。 2....
    99+
    2023-09-28
    微信小程序 前端 java
  • 微信小程序完整项目实战(前端+后端)
    基于微信小程序的在线商城点单系统 前言:闲来无事,想以后自己开一个小超市或者小吃店,能够支持线上下单,既方便客户也方便自己。系统采用C#语言作为后端实现与小程序的交互,给用来学习或者想自己开个小店的朋友当个参考。 文末获取源码联系 精彩...
    99+
    2023-08-16
    小程序 c# 后端 javascript html
  • 微信小程序登陆(全流程-前后端)
    环境要求 注册一个小程序 微信开发者工具 idea(springboot) 目录 项目准备 用户登陆 前端开发,传递code index.wxss index.js 后端编写,调用微信接口,获取openId 现在用户的所有信息都拿不到...
    99+
    2023-08-31
    微信小程序 小程序 微信
  • 微信小程序后端该怎么搭建
    这篇文章的内容主要围绕微信小程序后端该怎么搭建进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获! 有很多网友对微信小程序怎么搭建充满了疑问,如...
    99+
    2023-06-26
  • 微信小程序支付流程(前端)
    微信小程序的支付只要用到官方的支付API : wx.requestPayment(Object object) 官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/paym...
    99+
    2023-08-19
    微信小程序 前端 小程序 微信 javascript
  • 如何开发微信小程序,后端,前端,小程序端,如何部署到腾讯云托管
    开发微信小程序是一项非常有趣的任务,它涉及到前端、后端和小程序端的开发。在本文中,我们将介绍如何开发微信小程序,并将其部署到腾讯云托管。 一、前端开发 前端开发是微信小程序开发的第一步。在这一步中,我们需要使用微信小程序开发工具来创建一...
    99+
    2023-08-31
    微信小程序 小程序 前端
  • 微信小程序后端如何搭建
    要搭建微信小程序的后端,可以选择以下几种方式:1. 使用云开发:微信小程序提供了云开发能力,可以直接在小程序中使用云数据库、云函数等...
    99+
    2023-09-20
    微信小程序
  • yolov5部署+微信小程序前端展示
    分为yolov5项目部署和微信小程序两部分,先介绍微信小程序前端展示+flask后端,之后介绍项目部署这部分。 一、先上效果图 点击选择图片,调用摄像头选择图片   选择图片之后,点击开始检测,然后返回结果  ​​​​​​​    二...
    99+
    2023-09-11
    前端 python flask javascript
  • 微信小程序支付完整流程(前端)
     微信小程序中,常见付款给商家的场景,下面列出企业小程序中,从0起步完整微信支付流程。 一,注册微信支付商户号(由上级或法人注册)    接入微信支付 - 微信商户平台 此商户号,需要由主管及更上级领导进行注册,会成为公司收款账户(...
    99+
    2023-08-31
    微信小程序 小程序
  • 微信小程序前后端数据交互的详细图文教程
    目录前言一 微信小程序发送请求二 后端接口接受小程序请求并返回数据三 最后的效果图总结前言 先简单说一下我写的这个危险小程序前后端交互的业务,主要是两个数据:supplyCount和...
    99+
    2022-11-13
    微信小程序前后端数据交互怎么设置 微信小程序如何和后端交互 微信小程序前端后端和数据库
  • 如何通过微信小程序看web前端
    本篇内容介绍了“如何通过微信小程序看web前端”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码角度纵观整...
    99+
    2024-04-02
  • 微信小程序后端开发的示例分析
    这篇文章主要介绍了微信小程序后端开发的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序后端开发流程根据官网总结为两个步骤1、...
    99+
    2024-04-02
  • 微信小程序与Java后端接口交互
    目录准备创建后端项目创建小程序项目本文主要介绍小程序前后端数据的交互,实践演示。 准备 创建后端项目 我这里就创建一个SpringBoot项目作为演示。 在创建项目中选择Spring...
    99+
    2024-04-02
  • 微信小程序怎么与服务器端通信
    微信小程序可以通过调用微信提供的API,与服务器端进行通信。以下是一般的步骤: 在微信小程序中使用wx.request()方法发送...
    99+
    2024-04-03
    微信小程序 服务器
  • 微信小程序的授权登录-Java 后端 (Spring boot)
    微信开发文档链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 1. 前提 一个可以测试的微信小程序此微信小程序的APP...
    99+
    2023-10-18
    微信小程序 java spring boot
  • 基于后端云微信小程序如何开发
    这篇文章主要介绍“基于后端云微信小程序如何开发”,在日常操作中,相信很多人在基于后端云微信小程序如何开发问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于后端云微信小程序如何开发”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-26
  • 微信小程序中前端promise封装的示例分析
    这篇文章主要为大家展示了“微信小程序中前端promise封装的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中前端promise封装的示例分析...
    99+
    2024-04-02
  • 微信小程序模板怎么用
    这篇文章主要为大家展示了“微信小程序模板怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序模板怎么用”这篇文章吧。模板WXML提供模板(template),可以在模板中定义代码片段,...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作