精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Brython:替代JavaScript的前端開發工具

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

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

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

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

1.特點

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

圖片

2.運行速度接近于CPyhon

3.寫法方便,社區強大,可進行敏捷開發

我個人覺得相同的功能,用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 <= "你所需要顯示的文本"

即可,后續你將會看到用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 >

圖片

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

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

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

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

意思是,按鈕被點擊后便執行 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()函數即可完成目的。

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

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

    關注

    2

    文章

    1255

    瀏覽量

    69333
  • 計算器
    +關注

    關注

    16

    文章

    437

    瀏覽量

    37287
  • javascript
    +關注

    關注

    0

    文章

    516

    瀏覽量

    53792
  • 前端開發
    +關注

    關注

    0

    文章

    24

    瀏覽量

    4434
收藏 人收藏

    評論

    相關推薦

    #開發工具 安卓開發工具

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

    可視化的javascript開發工具

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

    Chrome引發WEB開發工具之戰,Javascript,

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

    CodeWarriorTM開發工具套件

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

    STM32 VR開發工具

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

    SL-AVR(新版)開發工具

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

    ARM開發工具解讀

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

    前端開發環境介紹_前端開發環境安裝與配置

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

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

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

    前端需要JavaScript的原因是什么

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

    6個高效的前端開發工具

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

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

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

    JavaScript開發工具有哪些?

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

    javascript屬于前端

    和動態性。 JavaScript通常被認為是前端開發的基礎。前端開發包括網頁的設計和開發,以及通
    的頭像 發表于 12-03 11:43 ?1377次閱讀

    瑞星微刷機工具開發工具

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