<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          python又搞事情 想一統(tǒng)天下?

          共 4005字,需瀏覽 9分鐘

           ·

          2022-05-16 15:55

          作者:我的小熊不見(jiàn)了

          來(lái)源:SegmentFault  思否社區(qū) 


          python最近又在搞大事情,就在最近,github上突然多了一個(gè)神奇的項(xiàng)目


          git地址:https://github.com/pyscript/pyscript


          并且最近一直在更新。一看這個(gè)名字就讓我們不禁想起JavaScript,再去官網(wǎng)一看


          pyscript官網(wǎng):https://pyscript.net/


          這家伙不僅模仿了JavaScript的名字,甚至連身子都想要取而代之!


          官方對(duì)pyscript的期望是可以在瀏覽器上直接運(yùn)行python。


          <html>|

              ...|

              <py-script> print('Now you can!') </py-script>|

          </html>|


          懷著一顆好奇心,我們把github上的代碼克隆下來(lái),發(fā)現(xiàn)是一個(gè)基于node的前端項(xiàng)目,那第一步先把他跑起來(lái)!


          進(jìn)入\pyscript-main\pyscriptjs目錄下,


          1. 首先安裝依賴(lài) cnpm i
          2. 然后先在本地運(yùn)行 npm run dev
          3. 打開(kāi) http://localhost:8080/

          首頁(yè)是一個(gè)純純的html文件,在\pyscript-main\pyscriptjs\examples目錄下的index.html,如下圖:


          我們先來(lái)看看最簡(jiǎn)單的Hello world頁(yè)面,如下圖:


          頁(yè)面確實(shí)夠簡(jiǎn)單,再看看它的代碼:
           
          <body>
              Hello world! <br>
              This is the current date and time, as computed by Python:
              <py-script>
          from datetime import datetime
          now = datetime.now()
          now.strftime("%m/%d/%Y, %H:%M:%S")
              </py-script>
            </body>

          想必大家都可以看得懂這段代碼,精彩的點(diǎn)在于,只要在<py-script>標(biāo)簽中,就可以直接使用python語(yǔ)法來(lái)進(jìn)行操作了,并且似乎比JavaScript還要直接嗷,甚至還有點(diǎn)數(shù)據(jù)綁定的意思。

          再來(lái)看看另一個(gè)經(jīng)典的例子,todo_list,對(duì)應(yīng)todo.html,如下圖:


          再看代碼:

          ...
           <py-script src="/todo.py">  </py-script>
          ...
          <section>

              <div class="text-center w-full mb-8">
                <h1 class="text-3xl font-bold text-gray-800 uppercase tracking-tight">To Do List</h1>
              </div>
              <div>
                <input id="new-task-content" class="border flex-1 mr-3 border-gray-300 p-2 rounded" type="text">
                <button id="new-task-btn" class="p-2 text-white bg-blue-600 border border-blue-600 rounded" type="submit" pys-onClick="add_task">
                  Add task
                </button>
              </div>

              <py-list id="myList"></py-list>
              <div id="list-tasks-container" class="flex flex-col-reverse mt-4">
            </div>

              <template id="task-template">
                  <section class="task bg-white my-1">
                      <label for="flex items-center p-2 ">
                        <input class="mr-2" type="checkbox" class="task-check">
                        <p class="m-0 inline"></p>
                      </label>
                  </section>
                </template>

            </section>

          在代碼最上面竟然引入了一個(gè).py文件,代碼中使用pys-onClick綁定了add_task方法,而add_task方法在引入的todo.py中進(jìn)行了聲明:

          def add_task(*ags, **kws):
             ...

          也就是說(shuō),pyscript真的可以做到和JavaScript在瀏覽器中運(yùn)行時(shí)一樣的調(diào)用體驗(yàn),甚至還可以在瀏覽器中引用python類(lèi)庫(kù)!

          在另一個(gè)todo_pylist.html頁(yè)面中,提供了直接在瀏覽器中運(yùn)行
          python命令的方法,


          為了顯示自己在處理復(fù)雜圖形方面的能力,示例中還提供了和three.js結(jié)合而成的webgl示例頁(yè)面:



          和一些圖表頁(yè)面:


          可以看到,在功能實(shí)現(xiàn)上,pyscript基本可以實(shí)現(xiàn)JavaScript能夠?qū)崿F(xiàn)的功能。

          不過(guò)從目前的體驗(yàn)上來(lái)看,在瀏覽器上運(yùn)行python屬實(shí)是夠慢的,每次打開(kāi)頁(yè)面都得等好幾秒,并且第一次打開(kāi)頁(yè)面的時(shí)候竟然還要下載python類(lèi)庫(kù),github上已經(jīng)有人提出了這個(gè)問(wèn)題,并且官方回答他們已經(jīng)努力了,并且還在繼續(xù)努力。

          有網(wǎng)友說(shuō)又可以少掌握一門(mén)語(yǔ)言多實(shí)現(xiàn)一項(xiàng)功能。不過(guò)從目前用戶體驗(yàn)這個(gè)角度來(lái)看,pyscript想要取代JavaScript在瀏覽器上的地位可能還有一段路要走,但是卻給我們提供了玩python的另一條新道路。pyscript還可以朝著哪些方面發(fā)展,歡迎大家提出自己的看法。



          點(diǎn)擊左下角閱讀原文,到 SegmentFault 思否社區(qū) 和文章作者展開(kāi)更多互動(dòng)和交流,掃描下方”二維碼“或在“公眾號(hào)后臺(tái)回復(fù)“ 入群 ”即可加入我們的技術(shù)交流群,收獲更多的技術(shù)文章~

          - END -


          瀏覽 22
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费啪视频网站 | 中文字幕免费无码视频 | 久久99精品久久久久久水蜜桃 | 日韩AV手机版 | www.AV视频在线观看 |