plotly 基于dash-component-boilerplate给我们提供了可以快速生成基于使用python 调用的react 组件
以下是一个简单的使用脚手架生成一个组件,同时可以了解组件的工作原理

创建一个简单组件的方法

  • 安装依赖

    推荐基于venv 进行环境处理

 
pip install cookiecutter
pip install virtualenv
  • clone 脚手架代码
    会有提示组件的名称以及相关信息
cookiecutter https://github.com/plotly/dash-component-boilerplate.git
  • 效果
cookiecutter https://github.com/plotly/dash-component-boilerplate.git
You've downloaded /Users/dalong/.cookiecutters/dash-component-boilerplate before. Is it okay to delete and re-download it? [yes]: yes
project_name [my dash component]: appdemo
project_shortname [appdemo]: 
component_name [Appdemo]: 
r_prefix []: 
author_name [Enter your first and last name (For package.json)]: dalongrong
author_email [Enter your email (For package.json)]: 1141591465@qq.com
github_org []: 
description [Project Description]: 
Select license:
1 - MIT License
2 - BSD License
3 - ISC License
4 - Apache Software License 2.0
5 - GNU General Public License v3
6 - Not open source
Choose from 1, 2, 3, 4, 5, 6 [1]: 4
publish_on_npm [True]: false
install_dependencies [True]: false
`install_dependencies` is false!!
Please create a venv in your project root and install the dependencies in requirements.txt
 

安装以及构建

  • 初始化venv
python3 -m venv venv
source venv/bin/activate
  • 安装依赖

    注意构建的时候可能需要先安装webpack-cli ,webpacakge 依赖的

pip install -r requirements.txt
  • 构建
yarn build
  • 效果
yarn build
yarn run v1.17.3
$ npm run build:js && npm run build:py_and_r
npm WARN lifecycle The node binary used for scripts is /var/folders/gd/md5518_n7cvbfv2zzm1g7xp40000gn/T/yarn--1566807177122-0.022181529109776/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> appdemo@0.0.1 build:js /Users/dalong/mylearning/dash/appdemo
> webpack --mode production
Hash: c52fac8690978943e164
Version: webpack 4.36.1
Time: 1285ms
Built at: 2019-08-26 16:13:00
             Asset Size Chunks Chunk Names
    appdemo.min.js 2.74 KiB 0 [emitted] main
appdemo.min.js.map 7.36 KiB 0 [emitted] main
Entrypoint main = appdemo.min.js appdemo.min.js.map
[0] external "PropTypes" 42 bytes {0} [built]
[1] external "React" 42 bytes {0} [built]
[2] ./src/lib/index.js + 1 modules 4.25 KiB {0} [built]
    | ./src/lib/index.js 119 bytes [built]
    | + 1 hidden module
npm WARN lifecycle The node binary used for scripts is /var/folders/gd/md5518_n7cvbfv2zzm1g7xp40000gn/T/yarn--1566807177122-0.022181529109776/node but npm is using /usr/local/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> appdemo@0.0.1 build:py_and_r /Users/dalong/mylearning/dash/appdemo
> dash-generate-components ./src/lib/components appdemo -p package-info.json --r-prefix ''
Generated Appdemo.py
Generated appdemo.R
Warning: a URL for bug reports was not provided. Empty string inserted.
Warning: a homepage URL was not provided. Empty string in
 
  • 生成的组件内容

  • 说明
    从官方我们我们也了解到,所有的组件需要转换为一个metadata.json 文件,其中包含了对于组件的描述,同时在__init__.py 中定义了组件
    js 以及css 加载的处理 Appdemo.py 定义了组件的属性信息
  • python pip 包生成
    实际上如果运行了python setup.py sdist 会发现有错误,实际上可能是版本的变动,这个有问题,
    简单修改如下:
 
with open(os.path.join('package.json')) as f:
    package = json.load(f)

生成效果

参考资料

https://github.com/plotly/dash-component-boilerplate
https://dash.plot.ly/react-for-python-developers

使用plotly dash-component-boilerplate 生成自己的组件的更多相关文章

  1. Vue中使用Vue.component定义两个全局组件,用单标签应用组件时,只显示一个组件的问题和 $emit的使用。

    解决方法: 定义了两个 Vue.component 在 el 中使用的时候要用 双标签, 用单表标签的时候,只会显示第个 组件间 这样写只显示 welcome-button 组件 <welcom ...

  2. Vue内置的Component标签用于动态切换组件

    html <div id="app"> <component :is="cut"></component> <butt ...

  3. ACC(Attribute Component Capability) 即特质,组件,能力

    这是一种测试计划的替代方法. ACC的指导原则如下: 1. 避免散漫的文字,推荐使用简明的列表.并不是所有的测试人员都想当小说家,也不具备将一个产品的目标或测试需求表达成散文的技能. 2.不必推销.测 ...

  4. vue3 element-plus 配置json快速生成table列表组件,提升生产力近500%(已在公司使用,持续优化中)

    ️本文为博客园首发文章,未获授权禁止转载 大家好,我是aehyok,一个住在深圳城市的佛系码农‍♀️,如果你喜欢我的文章,可以通过点赞帮我聚集灵力️. 个人github仓库地址: https:gith ...

  5. 所有selenium相关的库

    通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...

  6. angular2 环境配置

    看到angular发布正式版,心动不已准备测试下. 看着官网教程,使用了cli创建项目,在命令行中键入: 安装cli npm install -g angular-cli 如果安装过以前的版本,请执行 ...

  7. Angular 4 学习笔记 从入门到实战 打造在线竞拍网站 基础知识 快速入门 个人感悟

    最近搞到手了一部Angular4的视频教程,这几天正好有时间变学了一下,可以用来做一些前后端分离的网站,也可以直接去打包web app. 环境&版本信息声明 运行ng -v @angular/ ...

  8. Angular4.0学习笔记 从入门到实战打造在线竞拍网站学习笔记之二--路由

    Angular4.0基础知识见上一篇博客 路由 简介 接下来学习路由的相关知识 本来是不准备写下去的,因为当时看视频学的时候感觉自己掌握的不错 ( 这是一个灰常不好的想法 ) ,过了一段时间才发现An ...

  9. Angular4.0入门

    angular与其他的差别 angular cli安装 cnpm install -g @angular/cli 最新版本 cnpm uninstall -g @angular/cli 卸载全局版本 ...

随机推荐

  1. Java学习:接口(interface)的使用于注意事项

    接口 接口就是一种公共的规范标准.只要符合规范标准,就可以大家通用. 接口就是多个类的公共规范.接口是一种引用数据类型,最重要的内容就是其中的:抽象方法. 如何定义一个接口的格式 如何定义一个接口的格 ...

  2. 配置 Nginx 反向代理 WebSocket

    用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...

  3. win7系统 右击任务栏 资源管理器 弹出菜单“已固定”和“最近”项目不显示故障处理

    故障描述:右击任务栏中资源管理器图标时,弹出菜单只有“资源管理器”和“解除锁定”两个项目,“已固定”和“最近”项目缺失不显示,其他程序均显示正常,只有资源管理器这样.此故障一般发生在经常使用“已固定” ...

  4. .net Dapper 实践系列(6) ---事务删除(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 实现步骤 写在最后 写在前面 上一小节,总结了事务多表更新的两种方法.一个是只更新原来的数据,一个是先删除原来的数据再往里面添加新的数据.而这一小节,说的是事务的多表删除. 实现步骤 ...

  5. 如何在JIRA中有效使用关注和@提及 我正在关注的问题 提及我的问题 在仪表板上显示

    如何在JIRA中有效使用关注和@提及http://bbs.51testing.com/forum.php?mod=viewthread&tid=1157043&fromuid=1530 ...

  6. [Tools] 多媒体视频处理工具FFmpeg

    FFMpeg FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/ ...

  7. 连接池未注册org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'

    代码之前一直好好的,写了一个定时器后报错,本地测试为了立马能执行就用cron表达式* * * * * ?,为了只执行一次在最后面加上Thread.sleep(1000*3600*24)睡眠二十四小时从 ...

  8. Matlab享元模式

    享元模式(Flyweight)通过共享技术实现相同或相似对象的重用,可以减少创建对象的数量,以减少内存占用和提高性能.Java String的常量池,python logging,线程池,数据库连接池 ...

  9. django配置文件

    1.BASSE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 当前工程的根目录,Django会依 ...

  10. Vue3.0报错error: Unexpected console statement (no-console) 解决办法

    写项目过程中用ESLint遵守代码规范很有必要,但是对于一些规范也很是无语,比如:‘Unexpected console statement (no-console)’,连console都不能用,这就 ...