用Python来编写前端代码
(2019-02-08 17:27:58)
标签:
python全栈 |
分类: Software |
转换工具:
---------------------
一个Python到Javascript编译器(单向翻译,在python编辑器中无法检查错误,对象引入未加入。用python风格写javascript,再编译成js文件,确实直接写js可能更快一些)。它做了一些有关于它生成的代码质量方面的有趣承诺。首先,它尽量保留原始Python代码的结构,包括多继承和lambda函数等的特性。此外,Python代码也能调用Javascript命名空间中的对象。如果你在Python中试着调用document.getElementByIdx_x,那么生成的javascript中就会如实地使用
getElementById。
根据文档,Transcrypt是使用Python的AST模块来实现这些功能的。AST模块允许开发者调用Python解析自己代码的功能。
Jiphy,这个单词的意思是“Javascript in,
Python out”,反向同样可以做转换。另外,在任何方向的转化之前,两种语言的代码都可以先进行杂揉。
Jiphy目前最大的弱点是它只支持Python语言特性的一个子集。它不支持类和函数的默认参数,尽管它已经支持了装饰器和异常。有这样的缺陷主要是因为Jiphy坚持在源代码和目标代码之间建立行级的对应关系。它的开发者正在ES6的新特性里寻找,看如何更好地支持Python的其他特性。
用100%纯Python编写的JavaScript转换器和JavaScript解释器,可以把js文件和片段转换成py文件或python片段,js
to py生成器
pscript模块提供了将Python代码转换为JavaScript的功能。
---------------------
python运行js
PyV8:
python调用js代码
-----------------
Htmltree:
python 中html文件生成器
--------------
fanstatic:
python文件中,自动发布资源Javascript和CS到html中
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
典型案例一:
---------------------
Bokeh
Dash
对于python来说并不缺少轮子,但对于网页和图形等的轮子实在较少,尤其是浏览器盛行和轻ui下的优秀js出现,类似从源头造轮子不如研究和探讨如何把python、Javascript和html之间关系进行链接是一个有意义的尝试,这方面的尝试尤其Bokeh和Dash进行了有意义的探索,但这两个优秀的项目都选择了封闭生态的工作。
Dash相对要开放一些,图形系统使用的是D3为核心的NVD3,可以画出精美的js图形并能够和python交互。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
典型案例二:
---------------------
Brython
Brython旨在取代Javascript作为Web的脚本语言。因此,它是一个Python
3实现(您可以通过Web 控制台将其用于测试驱动器),适用于HTML5环境,也就是说具有DOM对象和事件的接口。
Brython用Javascript实现了一个Web客户端版本的Python3。它使用Javascirpt模拟了Python3的所有关键字,并模拟了大多数的内置函数。Brython脚本能够让你直接在浏览器中编写Python3,它还提供了高级的Python模块让你能够在浏览器中进行DOM操作,就跟Javascript做的一模一样。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RapydScript
承诺“让 Python 式 JavaScript
代码不再糟糕。”该项目在概念上类似于 CoffeeScript:以 Python 形式进行代码编写,生成 JavaScript
代码,并同时发挥二者的最佳特性。在 Python 方面,其拥有清晰的语法规则; 而在 JavaScript
方面,其拥有匿名函数、DOM 操作并能够使用 jQuery 或者 Node.js 内核等现有 JavaScript
库。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Flexx
为桌面和Web编写现代应用程序,Flexx是一个纯Python工具包,用于创建图形用户界面(GUI),它使用Web技术进行渲染。应用程序完全用Python编写; Flexx'转换器pscript可以动态生成必要的JavaScript。pscript是Flexx的一个子类。
Flexx 把python编译成Javascript实现web,没有集成和继承优秀的Javascript,使用Dialite的库来构造UI,和自己造轮子没有本质的区别。
- 的龙卷风库(纯Python)。
- 在PSCRIPT库(一个纯Python flexxui项目)。
- 在Webruntime库(一个纯Python flexxui项目)。webruntime模块可用于基于HTML / JS / CSS启动应用程序。这可以是浏览器或看起来像桌面应用程序的运行时,例如XUL(基于Firefox)或NW.js.
- 在Dialite库(一个纯Python flexxui项目)。Dialite是一个小型库,可以向用户显示简单的对话框,而无需使用繁重的GUI工具包。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pyxley
python库利用pyxleyJS React组件创建基于Flask的Web应用程序。通过使用PyReact库,我们可以使用Jinja模板来构造和转换单个React组件。特定的UI组件作为props传递给父组件。通过使用每种组件类型的特定包装器,提供了更简单的接口。
- 使用Flask,PyReact和Pandas的简单Web应用程序
- 与基于d3.js的库集成,例如MetricsGraphics
- 能够集成自定义React UI