0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Brython:替代JavaScript的前端開發(fā)工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 11:41 ? 次閱讀

Python作為膠水語言,真的是無所不能。這不,最近又出現(xiàn)一個基于Python3,目標是替代JavaScript的前端開發(fā)工具—Brython.

好用嗎?咱今天來試試用它寫一個計算器有多簡單:

不過,我們首先要知道它作為Python的客戶端Web編程工具,和JS有什么區(qū)別呢?

1.特點

1.可輕易地在頁面中內嵌Python終端進行測試

圖片

2.運行速度接近于CPyhon

3.寫法方便,社區(qū)強大,可進行敏捷開發(fā)

我個人覺得相同的功能,用Python寫起來可能會比JS快。

4.和JS一樣,你不用安裝任何東西就可以開始編寫

下面就用Brython做一些簡單的實驗吧。

2.實驗

1.在頁面上顯示 Hello !:

< !doctype html >
< html >
< head >
< meta charset="utf-8" >
< script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js" >
< /script >
< /head >
< body onload="brython()" >
< script type="text/python" >
from browser import document
document <= "Hello !"
< /script >
< /body >
< /html >

將這份代碼保存為index.html,雙擊在瀏覽器中打開,即可看到Hello !字樣:

圖片

原理:

代碼的head中,引入了一個Brython引擎附帶的 brython.min.js 模塊,用于使用Python控制頁面。

而在 和 之間就是相應的Python代碼。

可以看到,需要在document中顯示文本,直接輸入:

document <= "你所需要顯示的文本"

即可,后續(xù)你將會看到用Brython使用標準化的DOM語法和頁面交互的例子。

2.用HTML標簽來做文本格式化:

如加粗文本:

from browser import document, html
document <= html.B("Hello !")

部分加粗、部分不加粗:

from browser import document, html
document <= html.B("Hello, ") + "world !"

i 標簽:

document <= html.UL(html.LI(i) for i in range(5))

超鏈接:

document <= html.A("Python實用寶典", href="https://pythondict.com")

以上例子如下:

< !doctype html >
< html >
< head >
< meta charset="utf-8" >
< script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js" >
< /script >
< /head >
< body onload="brython()" >
< script type="text/python" >
from browser import document, html
document <= html.B("Hello !")
document <= html.UL(html.LI(i) for i in range(5))
document <= html.A("Python實用寶典", href="https://pythondict.com")
< /script >
< /body >
< /html >

效果:

圖片

3.寫一個簡單的計算器

先寫好簡單的圖形架構,用th和tr標簽即可:

from browser import document, html
calc = html.TABLE()
calc <= html.TR(html.TH(html.DIV("0", id="result"), colspan=3) +
                html.TH("C", id="clear"))
lines = ["789/",
        "456*",
        "123-",
        "0.=+"]
calc <= (html.TR(html.TD(x) for x in line) for line in lines)
document <= calc

圖片版代碼:

圖片

圖片

然后加上一些css就可以把這個簡單的圖形架構變漂亮了:

< style >
*{
font-family: sans-serif;
font-weight: normal;
font-size: 1.1em;
}
td{
background-color: #ccc;
padding: 10px 30px 10px 30px;
border-radius: 0.2em;
text-align: center;
cursor: default;
}
#result{
border-color: #000;
border-width: 1px;
border-style: solid;
padding: 10px 30px 10px 30px;
text-align: right;
}
< /style >

圖片

最后只需要做運算符的事件觸發(fā)器即可,從下面這行代碼:

calc <= (html.TR(html.TD(x) for x in line) for line in lines)

可以看出,所有的按鈕都被創(chuàng)建為td標簽,因此我們要獲得所有這些按鈕是否被點擊,僅需要:

for button in document.select("td"):
    button.bind("click", action)

意思是,按鈕被點擊后便執(zhí)行 action 操作,action操作定義如下:

def action(event):
    """Handles the "click" event on a button of the calculator."""
    # The element the user clicked on is the attribute "target" of the
    # event object
    element = event.target
    # The text printed on the button is the element's "text" attribute
    value = element.text
    
    if value not in "=C":
        # update the result zone
        if result.text in ["0", "error"]:
            result.text = value
        else:
            result.text = result.text + value
            
    elif value == "C":
        # reset
        result.text = "0"
        
    elif value == "=":
        # execute the formula in result zone
        try:
            result.text = eval(result.text)
        except:
            result.text = "error"

圖片版代碼:

圖片

如果不是=號或C號,則進行 字符串拼接 。

如果是C號,則清空result。

如果是=號,則需要計算出結果,直接對字符串用eval()函數(shù)即可完成目的。

這邊是全部核心代碼了,寫起來真的極其方便。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1253

    瀏覽量

    69202
  • 計算器
    +關注

    關注

    16

    文章

    435

    瀏覽量

    37216
  • javascript
    +關注

    關注

    0

    文章

    515

    瀏覽量

    53715
  • 前端開發(fā)

    關注

    0

    文章

    22

    瀏覽量

    4410
收藏 人收藏

    評論

    相關推薦

    #開發(fā)工具 安卓開發(fā)工具

    開發(fā)工具andriod工具使用
    勤學苦練的廢材
    發(fā)布于 :2022年11月21日 13:29:13

    可視化的javascript開發(fā)工具

    Netscape Visual JavaScript Netscape出品可視化的javascript開發(fā)工具。 同時可以下載Visual javascript Component
    發(fā)表于 03-31 14:34 ?13次下載

    Chrome引發(fā)WEB開發(fā)工具之戰(zhàn),Javascript,

    Chrome引發(fā)WEB開發(fā)工具之戰(zhàn),Javascript, Flash, Silverlight誰主沉浮?一名Web軟件公司的執(zhí)行官表示谷歌新瀏覽器Chrome的發(fā)布也許將引發(fā)新一輪瀏覽器的戰(zhàn)爭,但對于同為WEB應用程序開
    發(fā)表于 09-12 10:30 ?644次閱讀

    CodeWarriorTM開發(fā)工具套件

    本內容介紹了CodeWarriorTM開發(fā)工具套件
    發(fā)表于 05-19 18:08 ?0次下載
    CodeWarriorTM<b class='flag-5'>開發(fā)工具</b>套件

    STM32 VR開發(fā)工具

    STM32 VR開發(fā)工具
    發(fā)表于 02-17 13:38 ?39次下載

    SL-AVR(新版)開發(fā)工具

    SL-AVR(新版)開發(fā)工具
    發(fā)表于 09-21 12:50 ?0次下載
    SL-AVR(新版)<b class='flag-5'>開發(fā)工具</b>

    ARM開發(fā)工具解讀

    1.6 ARM開發(fā)工具 用戶選用ARM處理器開發(fā)嵌入式產(chǎn)品時,選擇合適的開發(fā)工具可以加快開發(fā)進度,節(jié)省開發(fā)成本。根據(jù)功能不同,ARM應用軟件
    發(fā)表于 10-18 13:29 ?3次下載
    ARM<b class='flag-5'>開發(fā)工具</b>解讀

    前端開發(fā)環(huán)境介紹_前端開發(fā)環(huán)境安裝與配置

    本恩主要介紹的是前端開發(fā)環(huán)境以及前端開發(fā)環(huán)境安裝與配置?,F(xiàn)在也有不少前端開發(fā)工具,比如Backb
    的頭像 發(fā)表于 02-01 13:08 ?1.7w次閱讀

    web前端開發(fā)工具排行:8款html開發(fā)工具推薦下載

    前端負責實現(xiàn)頁面效果,后端主要負責功能開發(fā)。那web開發(fā)都用什么工具呢?最常用的前端開發(fā)工具有哪
    的頭像 發(fā)表于 02-01 17:20 ?8.5w次閱讀

    前端需要JavaScript的原因是什么

    前端需要JavaScript為什么?許多微前端解決方案都是JavaScript框架。JavaScript不是可選的。想要高度交互的體驗,而
    的頭像 發(fā)表于 10-16 14:50 ?2145次閱讀

    6個高效的前端開發(fā)工具

    高效的前端開發(fā)工具有哪些?在互聯(lián)網(wǎng)中許多開發(fā)工具可以讓前端開發(fā)人員的工作生活變得更加輕松。應用程序的功能越來越豐富,也導致了
    的頭像 發(fā)表于 01-05 16:00 ?4462次閱讀

    六款程序員必看的前端在線開發(fā)工具

    六款程序員必看的前端在線開發(fā)工具
    的頭像 發(fā)表于 04-05 17:03 ?2735次閱讀

    JavaScript開發(fā)工具有哪些?

    Web設計開發(fā)逐漸成為計算機編程重要部分之一,在這篇文將分享八個最好用的JavaScript開發(fā)工具及代碼編譯器,希望對網(wǎng)頁設計師和開發(fā)人員有所幫助。
    的頭像 發(fā)表于 07-27 16:06 ?5634次閱讀

    javascript屬于前端

    和動態(tài)性。 JavaScript通常被認為是前端開發(fā)的基礎。前端開發(fā)包括網(wǎng)頁的設計和開發(fā),以及通
    的頭像 發(fā)表于 12-03 11:43 ?1323次閱讀

    瑞星微刷機工具開發(fā)工具

    瑞星微刷機工具開發(fā)工具
    發(fā)表于 10-09 11:14 ?0次下載