收藏
回答

调用调用云托管服务报错?

from datetime import datetime

from flask import render_template, request,Flask

from run import app

from wxcloudrun.dao import delete_counterbyid, query_counterbyid, insert_counter, update_counterbyid

from wxcloudrun.model import Counters

from wxcloudrun.response import make_succ_empty_response, make_succ_response, make_err_response

import pkuseg

from wordcloud import WordCloud

import matplotlib.pyplot as plt

from imageio import imread

import  os

@app.route('/upload', methods=['POST'])

def upload():

#     all_files = [f for f in os.listdir('/appcloudrun')]

#     return str(all_files) #获取当前工作目录路径

    file = request.form.get('allcomment')

    seg = pkuseg.pkuseg()

    text = seg.cut(file)

    text = str(text)

    return "ok"

    bg_pic = imread('/appcloudrun/R-C.jpg')

    wordcloud = WordCloud(mask=bg_pic,background_color='white',font_path='/appcloudrun/华文楷体.ttf',scale=1.5).generate(text)

    '''参数说明:

    mask:设置背景图片   background_color:设置背景颜色

    scale:按照比例进行放大画布,此处指长和宽都是原来画布的1.5倍

    generate(text):根据文本生成词云 '''

    wordcloud.to_file('/appcloudrun/ciyun.jpg')

以上是github中的view.py文件代码


# 写在最前面:强烈建议先阅读官方教程[Dockerfile最佳实践](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

# 选择构建用基础镜像(选择原则:在包含所有用到的依赖前提下尽可能提及小)。如需更换,请到[dockerhub官方仓库](https://hub.docker.com/_/python?tab=tags)自行选择后替换。

# 选择基础镜像

FROM python:3.7.11

# 设定当前的工作目录

WORKDIR /app

COPY . /app

# 安装依赖到指定的/install文件夹

# 选用国内镜像源以提高下载速度

RUN pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple \

&& pip config set global.trusted-host mirrors.cloud.tencent.com \

&& pip install --upgrade pip \

&& pip debug --verbose \

&& pip install --user -r requirements.txt

# 设定对外端口

EXPOSE 80

# 设定启动命令

CMD ["python3", "run.py", "0.0.0.0", "80"]


上面这个是Dockerfile


// 确认已经在 onLaunch 中调用过 wx.cloud.init 初始化环境(任意环境均可,可以填空)

        const res = await wx.cloud.callContainer({

            config: {

                env: 'prod-0gayxkvve034fe60', // 微信云托管的环境ID

            },

            data:{

              allcomment:this.data.allcomment

            },

            path: '/upload', // 填入业务自定义路径和参数,根目录,就是 / 

            method: 'POST', // 按照自己的业务开发,选择对应的方法

            header: {

                'X-WX-SERVICE': 'flask-xx8y', // xxx中填入服务名称(微信云托管 - 服务管理 - 服务列表 - 服务名称)

                'content-type': 'application/x-www-form-urlencoded'  //后端可以获取数据,不写获取不到

                // 其他header参数

            },

            // 其余参数同 wx.request

            timeout:60000

        });

        console.log(res);

这一个是小程序调用代码


但是在小程序调用云托管的时候报了错,错误具体如下:


请问大佬们这个是为什么

回答关注问题邀请回答
收藏

1 个回答

  • Evan
    Evan
    2022-03-29

    但是如果我把return放在函数的最前面就不会报错,请问这是什么原因

    2022-03-29
    有用
    回复
登录 后发表内容