Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
CSDN編者按】在構建各種應用程序方面,JavaScript 和 Python 是兩種很有影響力的編程語言。雖然多年以來 JavaScript 一直是主流編程語言,但近年來 Python 的快速增長已經威脅到了該廣泛流行語言的地位。那么未來五年內,Python 的流行程度能否超越 JavaScript?
以下為譯文:
Melight擁有十余年的軟件開發經驗,目前負責技術培訓工作,他說:“隨著技術領域的最新發展,我們可能會看到JavaScript與Python在流行程度上并駕齊驅的競爭局面,而且后者可能會贏得大多數開發者的心。”
那么,在未來五年內Python的流行程度能否超越JavaScript?
PS:本文不是要比較JavaScript和Python誰才是最佳編程語言。這兩種語言在不同使用環境中的表現截然不同,一種語言并不能完全取代另一種。
JavaScript最初發布于1995年,它是一種腳本編程語言,主要用于增添網頁的交互性。
這個語言還有其他高級版本,例如Node.js,可以用于在應用程序的服務器端添加額外的功能。
事實上,據估計有94.9%的網站用到了JavaScript。
以下是JavaScript流行的三個主要原因:
根據Stack Overflow的2018年開發者調查結果顯示,JavaScript是最常用的編程語言。
以下Stack Overflow調查結果圖顯示了各種編程語言的流行度:
如上圖所示,Stack Overflow的用戶更加喜歡將JavaScript作為他們選擇的語言。
雖然69.8%的調查用戶表達了他們對JavaScript的熱愛,但只有38.8%的用戶宣稱他們是Python的鐵桿粉絲。
令人驚訝的是在過去的六年中JavaScript一直占據榜首。
此外,GitHub還報告說JavaScript仍然是編程語言中的贏家。
根據2017年底進行的一項研究表明,代碼共享網站表示大多數的開發人員喜歡使用JavaScript作為他們的代碼庫。
以下GitHub的調查結果圖顯示了該平臺上每種編程語言的拉取請求次數:
如上圖所示,大多數用戶首選使用JavaScript提交拉取請求。
有趣的是,Python是該平臺上使用次數排第二的語言,表明在不久的將來它將威脅到JavaScript的地位。
Python最初發布于1991年(所以實際上它比JavaScript更早)。Python是一種功能強大的編程語言,越來越受關注。
它是一種高級通用語言,可以完成各種類型的任務,包括構建Web應用程序、分析數據和創建機器學習算法。
以下是Python人氣急劇上升的三個主要原因:
2018年9月,Python有史以來第一次被評為TIOBE編程社區指數中第三大最受歡迎的編程語言。
該指數按月計算,并根據編程語言的搜索引擎結果進行評定。
以下是2018年9月的TIOBE指數圖:
由于Python在完成各種技術任務中的使用越來越多,因此Stack Overflow將其稱為“增長最快的主要編程語言”。
下面Stack Overflow的調查結果圖顯示了高收入國家在2012至2018年間Python與其他編程語言的增長對比:
如上關于編程語言趨勢的數據所示,Python于2017年6月首次在Stack Overflow上整體問題概覽中名列榜首(緊隨其后的是JavaScript)。
這說明了Python的顯著增長,因為在2012年該平臺上有關Python的興趣非常低;事實上,該語言從2012年至今增長了2.5倍。
此外,Stack Overflow還構建了一個模型,用于預測未來兩年主要編程語言的未來流量。
以下是預測結果:
令人驚訝的是,該模型預測Python將于2020年超越JavaScript雄踞榜首。
此外,Stack Overflow還比較了2016年至2017年間主要編程語言的流量同比增長率。
以下是分析結果:
如上有關最新編程語言趨勢圖所示,Python的同比增長率高達27%,足以表明其快速的增長。
意外的是,JavaScript在這兩年內只有非常小的流量增長。
雖然多年來JavaScript一直被譽為互聯網的“通用語言”,但是Python可能會超越這一稱號(據數據顯示Python呈現出了令人難以置信的增長)。
盡管如此,時間將證明Python是否擔得起這樣的稱號。
重要的是,在你為未來做準備時,可以根據軟件開發中這些不斷變化的趨勢選擇最合適的編程語言。
那么,你認為哪種語言將主導Web開發的未來?在未來五年內,Python能否取JavaScript而代之?請在下方留言說出你的想法。
原文:https://hackernoon.com/could-pythons-popularity-outperform-javascript-in-the-next-five-years-abed4e307224
作者:Michael J. Garbade,Education Ecosystem的創始人兼首席執行官。
譯者:彎月,責編:郭芮
“征稿啦”
CSDN 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。
如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯系 CSDN 投稿,聯系方式:微信(guorui_1118,請備注投稿+姓名+公司職位),郵箱(guorui@csdn.net)。
近臨近開學了,大家都在忙著準備各種學習的資料,準備在新的學期好好學習,充實自己。小編身邊的同學也是如此,最近,小編的同學小麗就遇到了一個很棘手的問題。
她想將一個網頁的Python學習的教程打印下來,方便自己來學習,但是上千頁的教程,如果通過手動的方式,一個一個的去轉成pdf并保存到本地,實在是麻煩的不。
這就是一個html轉pdf的問題,其實網上有很多不錯的html資源,但是苦于學習起來,不方便!于是小編就跟小麗保證,這點小事包在我身上。今天,小編就跟分享一下如何用Python把html資料變成pdf。
如今網上的在線學習資料可謂是多如牛毛,為了方便講解,小編就利用python3.9.2的中文文檔作為演示的例子,來將其抓取并保存到本地,其網頁鏈接如下:
https://docs.python.org/zh-cn/3.9/tutorial/index.html
打開上述鏈接后,大家會在網頁中找到不同內容的鏈接地址,包括了基礎的python字符、python語法等內容。
在上圖中,我們需要格外關注的是紅色方格標注的鏈接,每個鏈接都會跳轉到對應的子網頁中,而在子網頁中,就是我們想要保存的內容。
可以看到,上圖中,在python速覽子頁面中,包含了我們需要提取的文字內容。所以將html內容保存為pdf的第一步便是獲取到子頁面的鏈接。由于教程大都是固定內容,因此對于教程的網頁,大都采用的是靜態頁面,在網頁源代碼中可以很輕松地找到子頁面的網頁鏈接。
對于子網頁的鏈接抓取,程序如下圖所示:
程序中,通過BeautifulSoup庫來解析網頁源代碼,然后提取所有的子頁面鏈接地址并返回,如果抓取失敗,則直接返回None。
03.html轉pdf
在得到子網頁的鏈接后,接下來就是將html的子網頁保存為pdf文件。小編使用的pdfkit庫,pdfkit庫可以將網頁保存為pdf文檔。首先小編來介紹一下pdfkit庫的安裝。
按照上述的操作流程,就可以安裝pdfkit庫。對于pdfkit庫的使用,常見的用法有以下三種:
上面的程序主要完成以下幾步:
首先需要指定wkhtmltopdf.exe文件的路徑;
因此,pdfkit庫只能將子網頁保存為單獨的pdf文檔,無法直接通過pdfkit庫將所有的子網頁拼接成一個完整的pdf文檔,小編通過PyPDF2庫中的PdfFileMerger類來實現pdf文檔的拼接。程序如下圖所示。
程序中首先將所有的html網頁保存為單獨的pdf文檔,然后通過PdfFileMerger類對象來實現pdf文檔的拼接。最后就可以得到全部的pdf內容。最后我們通過視頻的展示,來看一下程序的效果吧。
除此之外,程序不光可以抓取python3.9的中文文檔,針對其他的在線文檔,只需要對獲取網頁鏈接的程序進行修改即可抓取,例如對于Flask中文文檔的抓取,程序只需要按照下圖進行修改,即可將Flask的在線文檔保存為PDF文檔。
學習Python其實非常有趣,也很有用。因為Python有大量的現成的庫,可以幫助我們把工作中的很多瑣碎的煩事輕松解決。小編將上述的程序稍加修改,很快就幫阿麗搞定了教程,保存為pdf發送給了她,小編與女神的關系更拉近了一步
深入Python Web開發的過程中,HTML模板渲染是構建動態Web應用的重要環節。今天將詳細探討如何使用Python中最流行的模板引擎之一——Jinja2來進行高效且靈活的模板渲染。通過具體的代碼示例,將了解如何結合Flask框架與Jinja2實現數據與視圖的完美分離。
Jinja2是一個強大的現代模板引擎,設計用于Python web開發項目,它支持變量替換、控制結構、過濾器和宏等豐富的功能。Flask框架默認集成并推薦使用Jinja2進行模板渲染,使其成為Python Web開發者手中不可或缺的工具。
如果已經安裝過Flask,Jinja2通常已隨Flask一同安裝。若需要單獨安裝:
pip install Jinja2
1.創建模板文件
在項目中創建一個名為templates的文件夾,并在其內放置我們的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 }}表示變量占位符,{% %}表示控制結構
2.Flask中加載和渲染模板
在Flask應用中,我們需要導入render_template函數來加載并渲染模板:
from flask import Flask, render_template
app=Flask(__name__)
@app.route('/')
def home():
# 定義傳遞給模板的數據
title='主頁'
site_name='Html模板渲染示例'
items=['Item 1', 'Item 2', 'Item 3']
# 渲染模板并將數據傳遞給模板
return render_template('index.html', title=title, site_name=site_name, items=items)
if __name__=='__main__':
app.run(debug=True)
當用戶訪問主頁時,Flask會調用home函數,其中render_template函數會查找templates目錄下的index.html模板,并將定義好的變量替換到相應的位置。
1. 控制結構
除了簡單的循環外,Jinja2還支持條件判斷和其他邏輯操作:
<!-- 在模板中添加條件判斷 -->
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}
2. 過濾器
Jinja2內置了眾多過濾器,可以對變量進行處理,如格式化日期、轉換大小寫等:
<!-- 使用過濾器格式化日期 -->
<p>The date is: {{ current_date|date("Y-m-d") }}</p>
3. 宏
宏允許復用或封裝常見的HTML片段,提高代碼可讀性和維護性:
{# 在一個單獨的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>
通過本文,我們已經深入了解了Jinja2模板引擎的基礎使用方法以及其高級特性。掌握好Jinja2能夠顯著提升你的Web應用開發效率,實現更復雜、更美觀的動態頁面布局。
關注我,手把手帶你快速入門Python Web編程!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。