整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PyScript:讓Python在HTML中運行

          家好,我是DD,已經是封閉在家的第51天了!

          最近一直在更新Java新特性(https://www.didispace.com/java-features/)和IDEA Tips(https://www.didispace.com/idea-tips/)兩個原創專欄,其他方向內容的動態關注少了。昨天天晚上刷推的時候,瞄到了這個神奇的東西,覺得挺cool的,拿出來分享下:

          相信你看到圖,不用我說,你也猜到是啥了吧?html里可以跑python代碼了

          看到好多Python公眾號已經開始猛吹未來了,但乍看怎么覺得有點像JSP?或者一些模版引擎?是進步還是倒退呢?與其瞎想,不如仔細看看這個東東的能力吧!

          根據官方介紹,這個名為PyScript的框架,其核心目標是為開發者提供在標準HTML中嵌入Python代碼的能力,使用 Python調用JavaScript函數庫,并以此實現利用Python創建Web應用的功能。

          看到介紹里提到了調用JavaScript函數庫的能力,看來跟JSP或者模版引擎還是有區別的。

          PyScript 快速體驗

          官方給了一個例子,可以幫助我們觀的感受這個開發框架的能力,不妨跟著DD看看,它能做啥吧!

          第一個案例,hello world

          代碼很簡單,就下面這幾行。你只需要創建一個html文件,然后復制進去就可以了。

          <html>
            <head>
              <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
              <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
            </head>
            <body> 
              <py-script> 
                  print('Hello, World!') 
              </py-script> 
            </body>
          </html>
          

          保存好之后,在瀏覽器里打開就能看到這樣的頁面了:

          回頭再看看這個html里的內容,三個核心內容:

          • 引入pyscript的樣式文件:<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
          • 引入pyscript的腳本文件:<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
          • <py-script>標簽中寫具體的python代碼來輸出Hello World

          如果你懶得自己敲代碼的話,本文的兩個案例代碼我打包放在公眾號了,需要的朋友可以關注公眾號“程序猿DD”,回復:pyscript 獲取。

          第二個案例,數據定義 + 數據展示

          先創建一個data.py文件,然后加入前面的代碼。功能很簡單,就是隨機生成(x,y)的坐標

          import numpy as np
          
          def make_x_and_y(n):
              x = np.random.randn(n)
              y = np.random.randn(n)
              return x, y
          

          再創建一個html文件,加入下面的代碼

          <html>
              <head>
                <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
                <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
                <py-env>
                  - numpy
                  - matplotlib
                  - paths:
                    - /data.py
                </py-env>
              </head>
          
            <body>
              <h1>Let's plot random numbers</h1>
              <div id="plot"></div>
              <py-script output="plot">
              import matplotlib.pyplot as plt
              from data import make_x_and_y
          
              x, y = make_x_and_y(n=1000)
          
              fig, ax = plt.subplots()
              ax.scatter(x, y)
              fig
              </py-script>
            </body>
          </html>
          

          這里就稍微復雜一些了,除了hello world中的幾個要點外,這里還有這幾個要關注的地方:

          • <py-env>標簽:這里聲明要引入的包和要引入的文件(上面創建的data.py
          • <py-script output="plot">:這里定義了要在<div id="plot"></div>中輸出的內容,可以看到這里的邏輯都是用python寫的

          這個頁面的執行效果是這樣的:

          是不是很神奇呢?整個過程中都沒有大家熟悉的cs、js內容,就完成了這樣一個圖的頁面實現。

          小結

          最后,談談在整個嘗試過程中,給我的幾個感受:

          1. 開發體驗上高度統一,對于python開發者來說,開發Web應用的門檻可以更低了
          2. 感覺性能上似乎有所不足,幾個復雜的案例執行有點慢,開始以為是部分國外cdn的緣故,后來移到本地后,還是慢。這部分可能還需要進一步優化。

          這個開發框架目前還只是alpha版本,未來一定還會有更多特性與優化出來,總體上我覺得這個框架還是非常cool的,尤其對于剛學會Python,或者只會Python,但又想快速開發Web應用的小伙伴來說,可能將會是個不錯的選擇,那你覺得這個框架如何?未來會不會火?留言區聊聊吧!

          可以使用Qt的樣式表(QSS)來加載CSS文件。首先,您需要將CSS文件添加到資源文件中。然后,您可以在主函數中調用QApplication的setStyleSheet()函數來加載CSS文件。例如,如果您的CSS文件名為“style.css”,則可以使用以下代碼加載它:

          QApplication::setStyleSheet(":/styles/style.css");

          一部分:HTML簡介

          什么是HTML?

          HTML代表超文本標記語言(Hypertext Markup Language)。它是一種用于構建網頁的標記語言。HTML文件包含一組標簽,這些標簽用于定義網頁的結構和內容。瀏覽器讀取HTML文件,并根據標記中的指示呈現網頁內容。

          HTML的主要作用是定義文本內容、圖像、鏈接和其他媒體的排列方式,并提供交互元素,例如表單和按鈕。

          HTML的基本結構

          每個HTML文檔都應該遵循以下基本結構:

          <!DOCTYPE html>
          <html>
          <head>
              <title>網頁標題</title>
          </head>
          <body>
              <!-- 內容在這里 -->
          </body>
          </html>
          

          讓我們逐步解釋這個結構:

          • <!DOCTYPE html>:這是文檔類型聲明,它告訴瀏覽器正在使用的HTML版本。<!DOCTYPE html>表示使用HTML5。
          • <html>:HTML文檔的根元素。所有其他元素都包含在<html>標簽內。
          • <head>:包含與文檔相關的元信息,如頁面標題、字符集聲明和外部樣式表鏈接。
          • <title>:定義網頁的標題,顯示在瀏覽器標簽頁上。
          • <body>:包含網頁的主要內容,如文本、圖像和其他媒體。

          HTML標簽和元素

          HTML標簽是由尖括號括起來的名稱,例如<p>表示段落,<img>表示圖像。標簽通常成對出現,有一個開始標簽和一個結束標簽。例如:

          <p>這是一個段落。</p>
          

          <p>是開始標簽,</p>是結束標簽,文本位于兩個標簽之間。標簽定義了元素的類型和結構。

          有些HTML標簽是自封閉的,不需要結束標簽,例如<img>用于插入圖像。

          HTML注釋

          在HTML中,你可以使用注釋來添加說明性文字,注釋不會在瀏覽器中顯示。HTML注釋使用<!--開頭和-->結尾,如下所示:

          <!-- 這是一個注釋 -->
          

          注釋通常用于添加文檔說明、調試代碼或標記未來的修改。

          第二部分:HTML基本元素

          文本

          HTML中的文本通常包含在段落、標題、列表等元素中。以下是一些常見的文本元素:

          • <p>:定義一個段落。
          • <h1><h6>:定義標題,<h1>是最高級別的標題,<h6>是最低級別的標題。
          • <strong>:定義強調文本,通常以粗體顯示。
          • <em>:定義強調文本,通常以斜體顯示。
          • <a>:定義超鏈接,允許用戶點擊跳轉到其他頁面。

          示例:

          <p>這是一個段落。</p>
          <h1>這是一個標題</h1>
          <p><strong>這是強調文本。</strong></p>
          <p><em>這是斜體文本。</em></p>
          <p>訪問<a href="https://www.example.com">示例網站</a></p>
          

          圖像

          要在網頁中插入圖像,可以使用<img>標簽。它是一個自封閉標簽,需要指定圖像的src屬性來指定圖像文件的路徑。

          示例:

          htmlCopy code
          <img src="image.jpg" alt="圖像描述">
          
          • src:指定圖像文件的路徑。
          • alt:提供圖像的替代文本,用于無法加載圖像時的文字描述。

          鏈接

          通過使用<a>標簽,可以在網頁中創建鏈接。鏈接通常包含在文本或圖像中,并使用href屬性指定目標URL。

          示例:

          <a href="https://www.example.com">訪問示例網站</a>
          
          • href:指定鏈接的目標URL。

          列表

          HTML支持有序列表(<ol>)、無序列表(<ul>)和定義列表(<dl>)。

          無序列表

          無序列表使用<ul>標簽定義,每個列表項使用<li>標簽。

          示例:

          <ul>
              <li>項目1</li>
              <li>項目2</li>
              <li>項目3</li>
          </ul>
          

          有序列表

          有序列表使用<ol>標簽定義,每個列表項使用<li>標簽。

          示例:

          <ol>
              <li>第一項</li>
              <li>第二項</li>
              <li>第三項</li>
          </ol>
          

          定義列表

          定義列表使用<dl>標簽定義,每個定義項目使用<dt>標簽定義術語,使用<dd>標簽定義描述。

          示例:

          <dl>
              <dt>術語1</dt>
              <dd>描述1</dd>
              <dt>術語2</dt>
              <dd>描述2</dd>
          </dl>
          

          第三部分:HTML表單

          HTML表單允許用戶與網頁進行交互,提交數據。以下是HTML表單的基本元素:

          <form>元素

          <form>元素用于創建表單,可以包含文本字段、復選框、單選按鈕、下拉列表等。

          示例:

          <form action="submit.php" method="post">
              <!-- 表單元素在這里 -->
          </form>
          
          • action:指定表單數據提交的目標URL。
          • method:指定提交方法,通常是"post"或"get"。

          輸入字段

          輸入字段用于接收用戶輸入的數據,常見的輸入字段類型包括文本框、密碼框、單選按鈕、復選框等。

          文本框

          文本框使用<input>標簽,type屬性設置為"text"。

          示例:

          <input type="text" name="username" placeholder="用戶名">
          
          • type:指定字段類型。
          • name:指定字段的名稱。
          • placeholder:設置文本框的占位符文本。

          密碼框

          密碼框使用<input>標簽,type屬性設置為"password"。

          示例:

          htmlCopy code
          <input type="password" name="password" placeholder="密碼">
          

          單選按鈕

          單選按鈕使用<input>標簽,type屬性設置為"radio"。

          示例:

          <input type="radio" name="gender" value="male">男
          <input type="radio" name="gender" value="female">女
          
          • name:指定單選按鈕組的名稱。
          • value:指定每個選項的值。

          復選框

          復選框使用<input>標簽,type屬性設置為"checkbox"。

          示例:

          <input type="checkbox" name="subscribe" value="yes">訂閱新聞
          

          下拉列表

          下拉列表使用<select><option>標簽創建。<select>定義下拉列表,而<option>定義選項。

          示例:

          <select name="country">
              <option value="us">美國</option>
              <option value="ca">加拿大</option>
              <option value="uk">英國</option>
          </select>
          
          • name:指定下拉列表的名稱。
          • 每個<option>標簽表示一個選項,使用value屬性定義選項的值。

          第四部分:HTML樣式和CSS

          HTML用于定義網頁的結構和內容,但要使網頁看起來更吸引人,需要使用CSS(層疊樣式表)。CSS允許你定義字體、顏色、布局等樣式。

          內聯樣式

          可以在HTML元素內部使用style屬性來定義內聯樣式。

          示例:

          <p style="color: blue; font-size: 16px;">這是一個藍色的段落。</p>
          

          外部樣式表

          外部樣式表將樣式規則保存在獨立的CSS文件中,并通過<link>標簽將其鏈接到HTML文檔。

          示例(style.css):

          /* style.css */
          p {
              color: blue;
              font-size: 16px;
          }
          

          在HTML中鏈接外部樣式表:

          <link rel="stylesheet" type="text/css" href="style.css">
          

          這使得可以在整個網站上共享相同的樣式。

          總結

          HTML是構建現代網頁的基礎。通過學習HTML的基本語法和元素,你可以創建吸引人且功能強大的網頁。無論是文本、圖像、鏈接還是表單,HTML提供了豐富的工具來呈現內容和實現用戶交互。

          這篇文章提供了HTML的基礎知識,但HTML是一個廣泛的主題,還有許多高級特性和技巧等待你探索。希望這篇文章對你入門HTML有所幫助,讓你能夠開始創建自己的網頁。繼續學習和實踐,你將成為一個熟練的網頁開發者。


          主站蜘蛛池模板: 韩国福利影视一区二区三区| 杨幂AV污网站在线一区二区| 一区二区三区高清在线| 日韩精品久久一区二区三区| 亚洲一区精品伊人久久伊人 | 中文字幕一区二区三区久久网站| 国产精品无码亚洲一区二区三区| 亚洲日韩一区二区一无码| 国产福利电影一区二区三区| 亚洲欧洲无码一区二区三区| 日本一区二区免费看| 国产精品毛片a∨一区二区三区| 国产精品一区二区毛卡片 | 99精品国产一区二区三区2021 | 无码人妻精品一区二区三区99性 | 亚洲国产综合精品一区在线播放| 久久国产精品无码一区二区三区| 色综合视频一区二区三区| 亚洲a∨无码一区二区| 国产成人精品久久一区二区三区| 日韩电影一区二区三区| 激情内射亚州一区二区三区爱妻| 日本精品3d动漫一区二区| 亚洲欧美国产国产综合一区 | av无码精品一区二区三区四区 | 亚洲av无码一区二区三区人妖| 久久综合九九亚洲一区| 国产免费一区二区三区在线观看| 少妇人妻偷人精品一区二区| 国产成人精品一区二区秒拍| 性无码免费一区二区三区在线| 国产在线一区二区| 久久国产精品最新一区| 亚洲老妈激情一区二区三区| 亚洲AV福利天堂一区二区三| 亚洲欧洲精品一区二区三区| 国产精品成人免费一区二区 | 国产成人一区二区三区精品久久| 亚洲av永久无码一区二区三区 | 国产一区中文字幕在线观看 | 人妻少妇一区二区三区|