使程序内部显示在浏览器中

appear的Python项目详细描述


出现

一个python包,用于通过流式传输将应用程序的隐藏细节神奇地显示出来。在

安装

运行pip install appear

何时以及为什么要使用“显示”?

如果您有一个python应用程序,该应用程序在运行时包含要在浏览器中可视化的信息,请使用“显示”。在

  • 数据发送器的开销很低,只有一条线路可以发送数据。在
  • 发送数据的应用程序不必更改它的函数签名,因为信息是通过副作用发送的。在
  • 前端的开销很低,它可以处理所有与数据传输相关的事情,因此您可以专注于如何显示数据。在
  • 灵活,在一个页面中处理多个可视化效果。在

结构

它有三个主要部分。在

  1. 从应用程序发送数据的助手函数。在
  2. 一个服务器,它使用插座.io在
  3. 一个前端软件包,可以很容易地接收从服务器发送的数据并将其用于可视化。在

用法

1。从应用程序发送数据

首先通过调用appearance helper方法将函数添加到要插入的代码库中。在

fromappearimporthelper###### Your application code here ###### In the middle of your application code add the following method call to send datahelper(url="http://localhost:5000/broadcast",# This is the url of the Appear servertarget="myVisualizationName",# Name of the visualization to updatedata={"datapoints":[1,2,3],"title":"My Graph"},# Data to send to the visualization)

data参数中发送的数据可以是任何JSON序列化数据。在

2。编写前端代码

前端代码需要3件事

  1. 包括插座.io服务器连接代码
^{pr2}$
  1. {2>连接服务器。在
  2. 将函数连接到可视化,例如server.subscribe("visualizationName", update_my_vis)。通过多次调用subscribe方法,可以一次连接多个可视化。在

下面是前端代码的完整示例

<!DOCTYPE HTML><html><head><title>Appear</title><scriptsrc="static/vis_server.js"></script><scripttype="text/javascript"charset="utf-8">// Visualization functionfunctionupdate_my_vis(msg){document.getElementById("visualizationName").textContent="Number of entities "+msg.entities+" out of "+msg.limit}// Link visualization functions to contentserver=newVisServer()server.subscribe("visualizationName",update_my_vis)</script></head><body><h1>Appear</h1><pid="visualizationName"></p></body></html>

将html保存在名为templates的新文件夹中,并调用该文件索引.html. 例如templates/index.html

3。运行显示服务器

运行显示服务器。确保templates目录与您创建的前端代码的目录匹配。在

python -m appear.app templates

4。开始使用“显示”

打开浏览器到http://localhost:5000,然后启动应用程序。当页面加载时,你应该看到你的前端。每次应用程序调用helper方法时,浏览器中的数据都将使用链接的前端函数进行更新。在

工作样品

在samples文件夹中试用此repo中包含的样本

  1. 运行python -m appear.app sample/templates
  2. 打开浏览器以http://localhost:5000
  3. 在另一个终端运行python sample/example_app.py
  4. 浏览器将使用正在运行的应用程序中的实时数据进行更新。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaEclipseMars没有保存首选项   java梯度同步失败:原因:启动失败:   java如何从嵌套的JSON获取数据?   java如何判断可观察对象中的任何对象满足一个条件?   java将字符串转换为保持相同值的byte[]数组   java有没有办法绕过AuditingEntityListener为测试设置数据?   从/usr/share/java中解析linux JAR依赖关系   安卓 My java函数抛出nullpointerexception?   java Gradle使用正确版本的依赖项   JBoss和Java6中带注释的WebService中的web服务ClassCastException   java如何修复codename one中的简单逻辑错误?   java如何迭代矩阵的索引?   java如何在JPanel不可见时将其保存为图像?   java HashMap如何在Kotlin中实现MutableMap接口?   javascript如何在单击后加载特定片段?   EclipseJava为纳什均衡获取所有玩家/策略组合   JavaSpring:Web服务REST在JSON上产生双反斜杠   java为什么ServletContext#getRealPath(“/”)返回相对路径?   java当我的游戏应该重新启动时,我应该如何处理重置SurfaceView和线程?