brython | 初始化项目

简介: brython | 初始化项目

你可能很好奇,brython是什么? 有什么用? 如何快速初始化一个项目? 这篇文章可以告诉你哦。



brython是什么


brython是一个python 3项目,该项目的目的是让不熟悉javascript的小伙伴,也能够使用python来作为web浏览器的脚本语言。


该项目的github地址为: github.com/brython-dev…

作为当今的web,我们知晓,不仅会将服务器内容输出到页面,还会与用户进行交互,所以在使用python作为脚本语言的时候,会面临一个问题,我们如何获取页面对象的数据,换言之即如何操作DOM?



brython如何操作DOM


这里只是铺垫一下brython操作DOM的区别,无需实验,后续会做详细介绍。


在了解这个问题之前,我们不妨搜索一下javascript是如何操作DOM的呢?哦,原来在javascript中有一个对象叫做document


javascript中,我们获取id的元素,我们可以使用如下语句:

var userInfo = document.getElementById("userInput")


可惜python原生并没有给我们提供操作DOM的对象,但是brython给我们提供了browser包,即实现同样的功能,我们使用brython定义则如下:

import browser 
userInfo = browser.document["userInput"]


brython生态如何


不建议在生产环境中使用brython,容易蹚坑。遇到问题查询资料较少,需要自己查询源码或者做实验。 目前环境下,建议仅学习使用。哦,对了,如果你想写出不可维护的代码,那么恭喜你,这个非常适合你,届时如果上了生成环境,那么前端看不懂python代码,后端看不懂html/css代码,你就成为了公司的中流砥柱。



初始化项目


我们想编写brython,有如下途径:


  • 直接在html中引用brython.js
  • 使用【码上掘金】进行编写brython
  • 在本地安装brython

直接引用brython.js

我们直接新建一个demo.html键入如下代码即可


image.png


若要使用brython作为动态语言进行输出的话,我们需要在添加onload="brython()"

而python代码则应该用<script type="text/python"></script>标签包含。

具体python代码如下:

import browser
browser.document <= browser.html.H1("Hello Brython!")
browser.document <= browser.html.H3("by " + browser.html.A("juejin pdudo",href="https://juejin.cn/user/2981531267892856/posts"))


如上代码的意思是,向页面插入h1标签,内容为: "Hello Brython!" , 而后再插入h3标签,内容为:"by juejin pdudo",再次基础上"juejin pdudo",我们建立一个a标签,指向我的掘金地址。



使用【码上掘金】编写brython


这里要注意一下,所谓的使用【码上掘金】,严格来说是归纳于第一类,但是这里单独列出来。因为其可以快速的编写该项目。


如何在码上掘金引入brython,可以参考掘金发布的github地址: github.com/xitu/jcode-…

我们将上述代码在码上掘金编写,具体代码如下。


code.juejin.cn/pen/7153552…



在本地安装使用brython


在使用之前,请将python版本升级为3.10

使用pip install brython可以安装brython

使用brython-cli install可以初始化一个项目,产生的文件为:


image.png

直接引用本地的js就可以了,代码是一样的,这里暂不介绍了。



总结


brython也许对于前端大佬们来说是鸡肋,但是对于不熟悉javascript而又了解python的后端们来说,那就是香饽饽。 文章介绍了brython基本内容,以及和javascript的区别,最后讲述了如何初始化一个brython项目。


怎么样好玩么? 快动动你的小手指来试试吧。





相关文章
|
6天前
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
26 1
|
4月前
|
JavaScript
Vue项目常见的文档导入调接口
Vue项目常见的文档导入调接口
|
9月前
Echarts参数属性学习xAxis与yAxis演示案例
Echarts参数属性学习xAxis与yAxis演示案例
79 0
Echarts参数属性学习xAxis与yAxis演示案例
|
9月前
|
JavaScript API
Echarts参数属性学习Gird演示案例
Echarts参数属性学习Gird演示案例
59 0
|
4月前
|
JavaScript 前端开发
【源码共读】Vue2 中为什么可以使用 this 访问各种选项中的属性?
【源码共读】Vue2 中为什么可以使用 this 访问各种选项中的属性?
35 0
|
8月前
|
前端开发 JavaScript Go
解决非工程化项目初始化页面闪动问题
解决非工程化项目初始化页面闪动问题
50 0
|
9月前
|
存储 前端开发 Java
二十三.SpringCloudConfig源码-初始化配置
今天这篇文章我们来分析一下Spring Cloud Config 配置中心的源码,这应该是Spring Cloud Netflix的源码分析的最后一篇。下一个系列我将会继续分析Spring Cloud Alibaba相关组件的源码。Spring Cloud Config 基础使用请移步 《[配置中心Spring Cloud Config](https://blog.csdn.net/u014494148/article/details/117253831)》
|
10月前
|
JavaScript 前端开发 C++
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
|
IDE 开发工具
Airtest启动器的妙用--添加自定义的变量
Airtest启动器的妙用--添加自定义的变量
209 0
|
JavaScript 前端开发
#yyds干货盘点# 【js学习笔记十四】普通函数中的this指向问题解决方案_this
#yyds干货盘点# 【js学习笔记十四】普通函数中的this指向问题解决方案_this
65 0
#yyds干货盘点# 【js学习笔记十四】普通函数中的this指向问题解决方案_this