99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-02 11:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

好用嗎?咱今天來(lái)試試用它寫(xiě)一個(gè)計(jì)算器有多簡(jiǎn)單:

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

1.特點(diǎn)

1.可輕易地在頁(yè)面中內(nèi)嵌Python終端進(jìn)行測(cè)試

圖片

2.運(yùn)行速度接近于CPyhon

3.寫(xiě)法方便,社區(qū)強(qiáng)大,可進(jìn)行敏捷開(kāi)發(fā)

我個(gè)人覺(jué)得相同的功能,用Python寫(xiě)起來(lái)可能會(huì)比JS快。

4.和JS一樣,你不用安裝任何東西就可以開(kāi)始編寫(xiě)

下面就用Brython做一些簡(jiǎn)單的實(shí)驗(yàn)吧。

2.實(shí)驗(yàn)

1.在頁(yè)面上顯示 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,雙擊在瀏覽器中打開(kāi),即可看到Hello !字樣:

圖片

原理:

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

而在 和 之間就是相應(yīng)的Python代碼。

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

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

即可,后續(xù)你將會(huì)看到用Brython使用標(biāo)準(zhǔn)化的DOM語(yǔ)法和頁(yè)面交互的例子。

2.用HTML標(biāo)簽來(lái)做文本格式化:

如加粗文本:

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

部分加粗、部分不加粗:

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

i 標(biāo)簽:

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

超鏈接:

document <= html.A("Python實(shí)用寶典", 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實(shí)用寶典", href="https://pythondict.com")
< /script >
< /body >
< /html >

效果:

圖片

3.寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器

先寫(xiě)好簡(jiǎn)單的圖形架構(gòu),用th和tr標(biāo)簽即可:

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就可以把這個(gè)簡(jiǎn)單的圖形架構(gòu)變漂亮了:

< 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 >

圖片

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

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

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

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

意思是,按鈕被點(diǎn)擊后便執(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"

圖片版代碼:

圖片

如果不是=號(hào)或C號(hào),則進(jìn)行 字符串拼接 。

如果是C號(hào),則清空result。

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

這邊是全部核心代碼了,寫(xiě)起來(lái)真的極其方便。

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

    關(guān)注

    2

    文章

    1287

    瀏覽量

    71444
  • 計(jì)算器
    +關(guān)注

    關(guān)注

    16

    文章

    439

    瀏覽量

    38086
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54821
  • 前端開(kāi)發(fā)
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    4655
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

    CodeWarriorTM開(kāi)發(fā)工具套件

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

    STM32 VR開(kāi)發(fā)工具

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

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

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

    ARM開(kāi)發(fā)工具解讀

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

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

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

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

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

    前端需要JavaScript的原因是什么

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

    6個(gè)高效的前端開(kāi)發(fā)工具

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

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

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

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

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

    javascript屬于前端

    和動(dòng)態(tài)性。 JavaScript通常被認(rèn)為是前端開(kāi)發(fā)的基礎(chǔ)。前端開(kāi)發(fā)包括網(wǎng)頁(yè)的設(shè)計(jì)和開(kāi)發(fā),以及通
    的頭像 發(fā)表于 12-03 11:43 ?1926次閱讀

    AI開(kāi)發(fā)工具分類(lèi)與功能

    當(dāng)下,AI開(kāi)發(fā)工具不僅簡(jiǎn)化了AI開(kāi)發(fā)的復(fù)雜流程,還提高了開(kāi)發(fā)效率,推動(dòng)了AI技術(shù)的廣泛應(yīng)用。下面,AI部落小編為大家介紹AI開(kāi)發(fā)工具的分類(lèi)及其功能。
    的頭像 發(fā)表于 04-12 10:12 ?354次閱讀