小编lak*_*erz的帖子

在bokeh中嵌入散景应用程序

我正在拼命地将一个正在运行的散景小程序嵌入到烧瓶中,并且找不到合适的方法来执行此操作.我查看了所有示例,但我找不到一个包含更新数据的能力(最好的例子:sliders_applet).

如果我没弄错的话,我确实需要散景服务器才能更改数据(使用滑块等).以这种方式启动applet,例如:

bokeh-server --script sliders_app.py
Run Code Online (Sandbox Code Playgroud)

但我找不到合适的,或者至少是一种将sliders_app嵌入烧瓶的工作方式.由于应该可以使用多个applet,因此在散景服务器启动时指定一个小程序似乎并不干净.

我很乐意感谢任何帮助 - 散景看起来对我来说是一个很棒的工具.

python applet flask bokeh

19
推荐指数
2
解决办法
1万
查看次数

如何使用Python中的Flask压缩/最小化JSON/Jsonify的大小?

我经常向我的网页发送一个巨大的JSON字符串(在Flask中使用jsonify),所以我想减少数据.最简单的选择可能是删除所有换行符和空格字符,但只是给你一个例子:

普通jsonify:361KB
删除所有换行符和空格字符:118KB(哇).
压缩原始文件:35KB(双哇).

所以我基本上想知道是否有一种简单的方法来接近35KB.到目前为止我找不到一个解决方案,我可以在python和javascript(解压缩)中轻松实现.

现在,我每秒发送大约4-5MB的数据,这是 - 你猜对了 - 一点点"太多".

javascript python json flask

9
推荐指数
3
解决办法
7517
查看次数

Flask 会话 cookie 未在 Safari 中设置

我的会话 cookie 遇到了奇怪的行为:在我的 Mac 上运行 Flask 应用程序,一切正常,并且在任何浏览器上都设置了 cookie。

但是,如果我在 Windows 服务器上运行它,会话 cookie 不会在 Safari(和 iOS)上设置 - 但仍然适用于任何其他浏览器。怎么会发生这种事呢?这是一个简单应用程序的示例:

import os
import uuid
from flask import Flask, render_template, session

app = Flask(__name__)

SESSION_LIFETIME = 3600

@app.before_request
def before_request():

    # create session
    if not session.get('uid'):
        session.permanent = True
        session['uid'] = uuid.uuid4()

@app.route('/', methods=['GET'])
def test():

    return render_template('test.html')

if __name__ == "__main__":
    app.secret_key = os.urandom(24)
    app.permanent_session_lifetime = SESSION_LIFETIME
    app.debug = True
    app.run(threaded=True,
            host="0.0.0.0",
            port=int("5000")
            )
Run Code Online (Sandbox Code Playgroud)

以 test.html 为例:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta …
Run Code Online (Sandbox Code Playgroud)

python safari session mobile-safari flask

6
推荐指数
1
解决办法
1774
查看次数

Numpy 确实以不同方式对待 float('nan') 和 float - 转换为 None

我想从普通数组创建一个 Numpy 数组并将nan值转换为None- 但成功取决于天气,第一个值是“普通”浮点数,还是float('nan').

这是我的代码,从初始数组开始:

print(a)
array('d', [3.2345, nan, 2.0, 3.2, 1.0, 3.0])
print(b)
array('d', [nan, nan, 2.0, 3.2, 1.0, 3.0])
Run Code Online (Sandbox Code Playgroud)

现在我想通过向量化函数将所有nan值交换到 Python :None

def convert(x):
    if x != x:
        return None
    else:
        return x

convert_vec = numpy.vectorize(convert)
Run Code Online (Sandbox Code Playgroud)

很简单,但会导致两种不同的结果:

numpy.asarray(convert_vec(a))

array([[ 3.2345,  2.    ,  1.    ], [    nan,  3.2   ,  3.    ]])

numpy.asarray(convert_vec(b))
array([[None, 2.0, 1.0], [None, 3.2, 3.0]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?是的,我可以看到一个小小的差异 - 第二个有objectas dtype。但使用numpy.asarray(convert_vec(a), dtype=object)固定它 - …

python arrays numpy

5
推荐指数
1
解决办法
2万
查看次数

加快plotly.js 渲染/绘图性能的方法

我正在寻找各种方法来加速 JavaScript 中绘图的渲染,也许我们可以在这里收集一些东西?

我正在绘制科学数据,每条迹线大约有 500 个点 + 错误(通常在 1 到 4 条迹线之间)。听起来不太夸张,不是吗?现在数据根据用户输入(滑块)而变化,我的目标是在拖动滑块时尽可能平滑地更新绘图。这就是我意识到我对绘图速度不满意的地方。

由于 y 数据(+错误)可以完全改变,所以我使用Plotly.redraw- 在我的 Chrome 上,这需要大约 30-40 毫秒。看起来还可以,但考虑到我想同时呈现 5-15 个图,这通常会花费半秒或更长的时间。1 或 2 fps 并不完全是所谓的“流畅”。另外,这是在 Chrome 上,在其他浏览器上看起来更糟。

所以我想知道重绘是否是唯一的选择,如果是,如何加快速度?有任何想法吗?我尝试过type: 'scattergl',虽然这似乎是一个很大的提升(低至 10-15 毫秒),但它只对只有一条迹线的小地块起作用,我无法设法让它适用于所有 10-15 块地块 -它会抛出多个不同的错误,不值得一提,因为它们在不同的机器上总是不同的。所以我的结论是,scattergl界面不像svg那么成熟,但也许我用错了?

抱歉文字很长,但现在我真的很高兴听到一些关于如何加快速度的想法。

javascript svg webgl plotly

5
推荐指数
0
解决办法
5241
查看次数

标签 统计

python ×4

flask ×3

javascript ×2

applet ×1

arrays ×1

bokeh ×1

json ×1

mobile-safari ×1

numpy ×1

plotly ×1

safari ×1

session ×1

svg ×1

webgl ×1