整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Python 打敗 JavaScript 只需要 5

          Python 打敗 JavaScript 只需要 5 年?

          CSDN編者按】在構(gòu)建各種應(yīng)用程序方面,JavaScript 和 Python 是兩種很有影響力的編程語言。雖然多年以來 JavaScript 一直是主流編程語言,但近年來 Python 的快速增長已經(jīng)威脅到了該廣泛流行語言的地位。那么未來五年內(nèi),Python 的流行程度能否超越 JavaScript?

          以下為譯文:

          Melight擁有十余年的軟件開發(fā)經(jīng)驗,目前負(fù)責(zé)技術(shù)培訓(xùn)工作,他說:“隨著技術(shù)領(lǐng)域的最新發(fā)展,我們可能會看到JavaScript與Python在流行程度上并駕齊驅(qū)的競爭局面,而且后者可能會贏得大多數(shù)開發(fā)者的心。”

          那么,在未來五年內(nèi)Python的流行程度能否超越JavaScript?

          PS:本文不是要比較JavaScript和Python誰才是最佳編程語言。這兩種語言在不同使用環(huán)境中的表現(xiàn)截然不同,一種語言并不能完全取代另一種。

          1.JavaScript勢不可擋的流行度

          JavaScript最初發(fā)布于1995年,它是一種腳本編程語言,主要用于增添網(wǎng)頁的交互性。

          這個語言還有其他高級版本,例如Node.js,可以用于在應(yīng)用程序的服務(wù)器端添加額外的功能。

          事實上,據(jù)估計有94.9%的網(wǎng)站用到了JavaScript。

          以下是JavaScript流行的三個主要原因:

          • JavaScript既可以用于客戶端開發(fā),也可用于服務(wù)器端。因此,開發(fā)人員覺得該語言簡單易用,而且也可以避開其他服務(wù)器端的語言(比如PHP)。
          • JavaScript是一種跨平臺的編程語言。例如,通過Facebook支持的React Native JavaScript庫,你構(gòu)建的應(yīng)用程序既可以部署到桌面,也可以部署到移動平臺。
          • JavaScript愛好者擁有龐大的社區(qū),他們一直很支持該語言的使用。如果沒有人積極使用該語言并支持,那么該動態(tài)語言可能無法獲得今日的光輝榮耀。

          根據(jù)Stack Overflow的2018年開發(fā)者調(diào)查結(jié)果顯示,JavaScript是最常用的編程語言。

          以下Stack Overflow調(diào)查結(jié)果圖顯示了各種編程語言的流行度:

          如上圖所示,Stack Overflow的用戶更加喜歡將JavaScript作為他們選擇的語言。

          雖然69.8%的調(diào)查用戶表達(dá)了他們對JavaScript的熱愛,但只有38.8%的用戶宣稱他們是Python的鐵桿粉絲。

          令人驚訝的是在過去的六年中JavaScript一直占據(jù)榜首。

          此外,GitHub還報告說JavaScript仍然是編程語言中的贏家。

          根據(jù)2017年底進(jìn)行的一項研究表明,代碼共享網(wǎng)站表示大多數(shù)的開發(fā)人員喜歡使用JavaScript作為他們的代碼庫。

          以下GitHub的調(diào)查結(jié)果圖顯示了該平臺上每種編程語言的拉取請求次數(shù):

          如上圖所示,大多數(shù)用戶首選使用JavaScript提交拉取請求。

          有趣的是,Python是該平臺上使用次數(shù)排第二的語言,表明在不久的將來它將威脅到JavaScript的地位。

          2.Python越來越受歡迎

          Python最初發(fā)布于1991年(所以實際上它比JavaScript更早)。Python是一種功能強(qiáng)大的編程語言,越來越受關(guān)注。

          它是一種高級通用語言,可以完成各種類型的任務(wù),包括構(gòu)建Web應(yīng)用程序、分析數(shù)據(jù)和創(chuàng)建機(jī)器學(xué)習(xí)算法。

          以下是Python人氣急劇上升的三個主要原因:

          • Python因其簡單易用的語法而獲得了很多贊譽(yù)。該語言強(qiáng)調(diào)代碼的可讀性和簡單性,因此成為了許多新手開發(fā)人員的首選。
          • Python的可靠性和效率贏得了許多人工智能專家的喜愛。因此,隨著目前機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)應(yīng)用程序使用的增加,Python已成為該領(lǐng)域?qū)I(yè)人士的首選。更重要的是,Python擁有一些庫可以簡化各種科學(xué)任務(wù)的工作。
          • 與JavaScript一樣,Python也有一個支持語言發(fā)展的活躍社區(qū)。Python已經(jīng)存在了很多年了,因此它擁有大量的開發(fā)指南和出版物,用戶很容易就可以找到支持(無論他們是初學(xué)者還是經(jīng)驗豐富的人。)

          2018年9月,Python有史以來第一次被評為TIOBE編程社區(qū)指數(shù)中第三大最受歡迎的編程語言。

          該指數(shù)按月計算,并根據(jù)編程語言的搜索引擎結(jié)果進(jìn)行評定。

          以下是2018年9月的TIOBE指數(shù)圖:

          由于Python在完成各種技術(shù)任務(wù)中的使用越來越多,因此Stack Overflow將其稱為“增長最快的主要編程語言”。

          下面Stack Overflow的調(diào)查結(jié)果圖顯示了高收入國家在2012至2018年間Python與其他編程語言的增長對比:

          如上關(guān)于編程語言趨勢的數(shù)據(jù)所示,Python于2017年6月首次在Stack Overflow上整體問題概覽中名列榜首(緊隨其后的是JavaScript)。

          這說明了Python的顯著增長,因為在2012年該平臺上有關(guān)Python的興趣非常低;事實上,該語言從2012年至今增長了2.5倍。

          此外,Stack Overflow還構(gòu)建了一個模型,用于預(yù)測未來兩年主要編程語言的未來流量。

          以下是預(yù)測結(jié)果:

          令人驚訝的是,該模型預(yù)測Python將于2020年超越JavaScript雄踞榜首。

          此外,Stack Overflow還比較了2016年至2017年間主要編程語言的流量同比增長率。

          以下是分析結(jié)果:

          如上有關(guān)最新編程語言趨勢圖所示,Python的同比增長率高達(dá)27%,足以表明其快速的增長。

          意外的是,JavaScript在這兩年內(nèi)只有非常小的流量增長。

          3.總結(jié)

          雖然多年來JavaScript一直被譽(yù)為互聯(lián)網(wǎng)的“通用語言”,但是Python可能會超越這一稱號(據(jù)數(shù)據(jù)顯示Python呈現(xiàn)出了令人難以置信的增長)。

          盡管如此,時間將證明Python是否擔(dān)得起這樣的稱號。

          重要的是,在你為未來做準(zhǔn)備時,可以根據(jù)軟件開發(fā)中這些不斷變化的趨勢選擇最合適的編程語言。

          那么,你認(rèn)為哪種語言將主導(dǎo)Web開發(fā)的未來?在未來五年內(nèi),Python能否取JavaScript而代之?請在下方留言說出你的想法。

          原文:https://hackernoon.com/could-pythons-popularity-outperform-javascript-in-the-next-five-years-abed4e307224

          作者:Michael J. Garbade,Education Ecosystem的創(chuàng)始人兼首席執(zhí)行官。

          譯者:彎月,責(zé)編:郭芮

          征稿啦

          CSDN 公眾號秉持著「與千萬技術(shù)人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術(shù)人的獨特視角描述技術(shù)人關(guān)心的行業(yè)焦點事件,更有「技術(shù)頭條」專欄,深度解讀行業(yè)內(nèi)的熱門技術(shù)與場景應(yīng)用,讓所有的開發(fā)者緊跟技術(shù)潮流,保持警醒的技術(shù)嗅覺,對行業(yè)趨勢、技術(shù)有更為全面的認(rèn)知。

          如果你有優(yōu)質(zhì)的文章,或是行業(yè)熱點事件、技術(shù)趨勢的真知灼見,或是深度的應(yīng)用實踐、場景方案等的新見解,歡迎聯(lián)系 CSDN 投稿,聯(lián)系方式:微信(guorui_1118,請備注投稿+姓名+公司職位),郵箱(guorui@csdn.net)。

          近臨近開學(xué)了,大家都在忙著準(zhǔn)備各種學(xué)習(xí)的資料,準(zhǔn)備在新的學(xué)期好好學(xué)習(xí),充實自己。小編身邊的同學(xué)也是如此,最近,小編的同學(xué)小麗就遇到了一個很棘手的問題。

          她想將一個網(wǎng)頁的Python學(xué)習(xí)的教程打印下來,方便自己來學(xué)習(xí),但是上千頁的教程,如果通過手動的方式,一個一個的去轉(zhuǎn)成pdf并保存到本地,實在是麻煩的不。

          這就是一個html轉(zhuǎn)pdf的問題,其實網(wǎng)上有很多不錯的html資源,但是苦于學(xué)習(xí)起來,不方便!于是小編就跟小麗保證,這點小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。

          01.抓取的學(xué)習(xí)資料

          如今網(wǎng)上的在線學(xué)習(xí)資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網(wǎng)頁鏈接如下:

          https://docs.python.org/zh-cn/3.9/tutorial/index.html

          打開上述鏈接后,大家會在網(wǎng)頁中找到不同內(nèi)容的鏈接地址,包括了基礎(chǔ)的python字符、python語法等內(nèi)容。

          02.獲取網(wǎng)頁鏈接

          在上圖中,我們需要格外關(guān)注的是紅色方格標(biāo)注的鏈接,每個鏈接都會跳轉(zhuǎn)到對應(yīng)的子網(wǎng)頁中,而在子網(wǎng)頁中,就是我們想要保存的內(nèi)容。

          可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內(nèi)容。所以將html內(nèi)容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內(nèi)容,因此對于教程的網(wǎng)頁,大都采用的是靜態(tài)頁面,在網(wǎng)頁源代碼中可以很輕松地找到子頁面的網(wǎng)頁鏈接。

          對于子網(wǎng)頁的鏈接抓取,程序如下圖所示:

          程序中,通過BeautifulSoup庫來解析網(wǎng)頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None


          03.html轉(zhuǎn)pdf

          在得到子網(wǎng)頁的鏈接后,接下來就是將html的子網(wǎng)頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網(wǎng)頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。

          • 下載https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.mxe-cross-win64.7z 并解壓到本地文件中。(后臺輸入:pdf) 直接獲取。
          • 將解壓文件中的bin文件路徑添加到系統(tǒng)變量Path中。
          • 執(zhí)行pip install pdfkit
          • 執(zhí)行pip install wkhtmltopdf

          按照上述的操作流程,就可以安裝pdfkit庫。對于pdfkit庫的使用,常見的用法有以下三種:

          上面的程序主要完成以下幾步:

          首先需要指定wkhtmltopdf.exe文件的路徑;

          • 然后分別通過from_url、from_file和from_string的三種方式來保存為pdf文件;
          • 需要注意的是,from_file和from_url中的第一個參數(shù)必須是一個html的字符串或者是html文檔的列表;
          • 但是小編通過程序運行發(fā)現(xiàn),from_url第一個參數(shù)只能是html的字符串,不能是html的列表


          因此,pdfkit庫只能將子網(wǎng)頁保存為單獨的pdf文檔,無法直接通過pdfkit庫將所有的子網(wǎng)頁拼接成一個完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實現(xiàn)pdf文檔的拼接。程序如下圖所示。

          程序中首先將所有的html網(wǎng)頁保存為單獨的pdf文檔,然后通過PdfFileMerger類對象來實現(xiàn)pdf文檔的拼接。最后就可以得到全部的pdf內(nèi)容。最后我們通過視頻的展示,來看一下程序的效果吧。


          除此之外,程序不光可以抓取python3.9的中文文檔,針對其他的在線文檔,只需要對獲取網(wǎng)頁鏈接的程序進(jìn)行修改即可抓取,例如對于Flask中文文檔的抓取,程序只需要按照下圖進(jìn)行修改,即可將Flask的在線文檔保存為PDF文檔。

          04.總結(jié)

          學(xué)習(xí)Python其實非常有趣,也很有用。因為Python有大量的現(xiàn)成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發(fā)送給了她,小編與女神的關(guān)系更拉近了一步

          深入Python Web開發(fā)的過程中,HTML模板渲染是構(gòu)建動態(tài)Web應(yīng)用的重要環(huán)節(jié)。今天將詳細(xì)探討如何使用Python中最流行的模板引擎之一——Jinja2來進(jìn)行高效且靈活的模板渲染。通過具體的代碼示例,將了解如何結(jié)合Flask框架與Jinja2實現(xiàn)數(shù)據(jù)與視圖的完美分離。

          Jinja2簡介

          Jinja2是一個強(qiáng)大的現(xiàn)代模板引擎,設(shè)計用于Python web開發(fā)項目,它支持變量替換、控制結(jié)構(gòu)、過濾器和宏等豐富的功能。Flask框架默認(rèn)集成并推薦使用Jinja2進(jìn)行模板渲染,使其成為Python Web開發(fā)者手中不可或缺的工具。

          安裝與配置Jinja2(適用于未安裝Flask環(huán)境)

          如果已經(jīng)安裝過Flask,Jinja2通常已隨Flask一同安裝。若需要單獨安裝:

          pip install Jinja2

          基本使用示例

          1.創(chuàng)建模板文件

          在項目中創(chuàng)建一個名為templates的文件夾,并在其內(nèi)放置我們的HTML模板文件,例如index.html:

          <!-- templates/index.html -->
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html渲染示例</title>
          </head>
          <body>
              <h1>{{ title }}</h1>
              <p>Welcome to {{ site_name }}!</p>
              <ul>
              {% for item in items %}
                  <li>{{ item }}</li>
              {% endfor %}
              </ul>
          </body>
          </html>

          在這個模板中,我們用{{ variable }}表示變量占位符,{% %}表示控制結(jié)構(gòu)

          2.Flask中加載和渲染模板

          在Flask應(yīng)用中,我們需要導(dǎo)入render_template函數(shù)來加載并渲染模板:

          from flask import Flask, render_template
          
          app=Flask(__name__)
          
          @app.route('/')
          def home():
              # 定義傳遞給模板的數(shù)據(jù)
              title='主頁'
              site_name='Html模板渲染示例'
              items=['Item 1', 'Item 2', 'Item 3']
          
              # 渲染模板并將數(shù)據(jù)傳遞給模板
              return render_template('index.html', title=title, site_name=site_name, items=items)
          
          if __name__=='__main__':
              app.run(debug=True)

          當(dāng)用戶訪問主頁時,F(xiàn)lask會調(diào)用home函數(shù),其中render_template函數(shù)會查找templates目錄下的index.html模板,并將定義好的變量替換到相應(yīng)的位置。

          Jinja2高級特性

          1. 控制結(jié)構(gòu)

          除了簡單的循環(huán)外,Jinja2還支持條件判斷和其他邏輯操作:

          <!-- 在模板中添加條件判斷 -->
          {% if user.is_authenticated %}
              <p>Welcome, {{ user.username }}!</p>
          {% else %}
              <p>Please log in.</p>
          {% endif %}

          2. 過濾器

          Jinja2內(nèi)置了眾多過濾器,可以對變量進(jìn)行處理,如格式化日期、轉(zhuǎn)換大小寫等:

          <!-- 使用過濾器格式化日期 -->
          <p>The date is: {{ current_date|date("Y-m-d") }}</p>

          3. 宏

          宏允許復(fù)用或封裝常見的HTML片段,提高代碼可讀性和維護(hù)性:

          {# 在一個單獨的macros.html模板中定義宏 #}
          {% macro render_item(item) %}
              <div class="item">
                  <h3>{{ item.title }}</h3>
                  <p>{{ item.description }}</p>
              </div>
          {% endmacro %}

          然后在其他模板中引入并使用該宏:

          {% from 'macros.html' import render_item %}
          
          <ul>
          {% for item in items %}
              {{ render_item(item) }}
          {% endfor %}
          </ul>

          結(jié)語

          通過本文,我們已經(jīng)深入了解了Jinja2模板引擎的基礎(chǔ)使用方法以及其高級特性。掌握好Jinja2能夠顯著提升你的Web應(yīng)用開發(fā)效率,實現(xiàn)更復(fù)雜、更美觀的動態(tài)頁面布局。

          關(guān)注我,手把手帶你快速入門Python Web編程!


          主站蜘蛛池模板: 色国产精品一区在线观看| 精产国品一区二区三产区| 久久无码人妻一区二区三区午夜| 亲子乱av一区区三区40岁| 国产亚洲一区区二区在线| 福利国产微拍广场一区视频在线| 台湾无码AV一区二区三区| 国产成人高清亚洲一区久久| 一区二区三区国产精品| 亚洲一区无码精品色| 亚洲AV无码一区二区三区鸳鸯影院 | 久久久综合亚洲色一区二区三区| 国产精品一区电影| 亚洲日韩一区二区一无码| 日韩人妻不卡一区二区三区| 国产AV午夜精品一区二区三| 精品成人一区二区三区四区| 国产在线一区二区三区av| 亲子乱av一区区三区40岁| 天堂一区二区三区精品| 亚无码乱人伦一区二区| 色一情一乱一区二区三区啪啪高 | 亚洲.国产.欧美一区二区三区| 亚洲一区二区三区首页 | 日韩一区二区三区不卡视频 | 国产AV一区二区三区传媒| 国产一区二区三区乱码| 亚洲AV福利天堂一区二区三| 亚洲综合色自拍一区| 无码一区二区三区免费| 日韩精品无码一区二区中文字幕 | 人妻夜夜爽天天爽一区| 国产伦精品一区二区三区四区| 日本v片免费一区二区三区| 国产福利在线观看一区二区| 国产成人一区在线不卡| 国模精品一区二区三区| 亚州日本乱码一区二区三区| 国产主播福利一区二区| 国产主播福利精品一区二区| 国产高清在线精品一区二区三区|