Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Docker编写烧瓶系列_Python 3.x_Docker_Flask_Docker Compose_Pyserial - Fatal编程技术网

Python 3.x Docker编写烧瓶系列

Python 3.x Docker编写烧瓶系列,python-3.x,docker,flask,docker-compose,pyserial,Python 3.x,Docker,Flask,Docker Compose,Pyserial,你好,我是docker的新手,我尝试将我的flask应用程序dockerize 当我从虚拟串行端口发送消息时,index.html文本区域中不显示串行消息。这是我的密码 dockerfile 标签名称=ise-4000版本=0.0.1 曝光5555 WORKDIR/app 加上/应用程序 复制模板/应用程序/模板 #使用pip: 运行python-mpip安装-r requirements.txt CMD[“python”,“app.py”] docker-compose.yml versio

你好,我是docker的新手,我尝试将我的flask应用程序dockerize

当我从虚拟串行端口发送消息时,index.html文本区域中不显示串行消息。这是我的密码

dockerfile

标签名称=ise-4000版本=0.0.1 曝光5555 WORKDIR/app 加上/应用程序 复制模板/应用程序/模板 #使用pip: 运行python-mpip安装-r requirements.txt CMD[“python”,“app.py”] docker-compose.yml

version: '2.1'

services:
  ise-4000:
    image: ise-4000
    build: .
    ports:
      - 5555:5555
app.py

从烧瓶导入烧瓶,渲染\u模板
从flask_socketio导入socketio
app=烧瓶(名称)
app.config['SECRET_KEY']='mynameislaunglaung'
socketio=socketio(应用程序)
@应用程序路径(“/”)
def会话():
返回呈现模板('session.html')
收到def message(方法=['GET','POST']):
打印(“消息已收到!!”)
@socketio.on(“我的活动”)
def handle_my_custom_事件(json,方法=['GET','POST']):
打印('收到我的事件:',json)
emit('my response',json,callback=messageReceived)
@socketio.on('cleint send message')
def处理我的信息(信息):
打印(“消息数据:”,消息)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
运行(应用程序,主机='0.0.0.0',端口='5555')
session.html

{%extends“bootstrap/base.html”%}
{%block title%}ISE-4000{%endblock%}
{%block styles%}
{{super()}}
{%endblock%}
{%block scripts%}
{{super()}}
$(文档).ready(函数(){
var socket=io.connect('http://'+document.domain+':'+location.port);
console.log(document.domain+“:”+location.port);
socket.on('serial_message',函数(数据){
控制台日志(数据);
变量文本=数据['message'];
var$textarea=$(“#串行#u消息”);
$textarea.val($textarea.val()+text+'\n');
})
});
{%endblock%}
{%block content%}
接收串行消息
信息:
{%endblock%}

我的问题是虚拟端口在docker容器中不起作用,或者我的代码中出现了一些错误。

我只是简单地看一下SocketIO文档,但我认为问题在于您的JS代码正在侦听一种名为
“serial\u message”

然而,你的Flask应用程序从来不会发出那种消息类型,只会发出“我的回应”

socketio.emit('my response'
如果希望数据在套接字上“流动”,则这两个字符串必须匹配


类似地,您在Python代码中的注释上放置了两个
@socketio.on,但没有显示任何事件类型(并且您拼写的客户端错误)



methods=['GET','POST']
仅适用于具有与其关联的Flask路由的方法,而不适用于回调或socketio函数

如果尝试使用
socketio.run会怎么样(应用程序,host='0.0.0'
是的,我已经用
host='0.0.0.0'
试过了。我是否需要更改docker-compose.yml。你的代码说端口是9999…你只公开了5555@cricket_007抱歉,我复制了错误的app.py文件,我使用5555运行了正确的端口。session.html呢?您的问题是显示index.html。。。在任何情况下,
socket.on('serial\u message
)都需要以某种方式映射到Python正在发送的内容,但是那里没有一个字符串表示
serial\u message
socketio.emit('my response'