整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Python 打败 JavaScript 只需要 5

Python 打败 JavaScript 只需要 5 年?

CSDN编者按】在构建各种应用程序方面,JavaScript 和 Python 是两种很有影响力的编程语言。虽然多年以来 JavaScript 一直是主流编程语言,但近年来 Python 的快速增长已经威胁到了该广泛流行语言的地位。那么未来五年内,Python 的流行程度能否超越 JavaScript?

以下为译文:

Melight拥有十余年的软件开发经验,目前负责技术培训工作,他说:“随着技术领域的最新发展,我们可能会看到JavaScript与Python在流行程度上并驾齐驱的竞争局面,而且后者可能会赢得大多数开发者的心。”

那么,在未来五年内Python的流行程度能否超越JavaScript?

PS:本文不是要比较JavaScript和Python谁才是最佳编程语言。这两种语言在不同使用环境中的表现截然不同,一种语言并不能完全取代另一种。

1.JavaScript势不可挡的流行度

JavaScript最初发布于1995年,它是一种脚本编程语言,主要用于增添网页的交互性。

这个语言还有其他高级版本,例如Node.js,可以用于在应用程序的服务器端添加额外的功能。

事实上,据估计有94.9%的网站用到了JavaScript。

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

  • JavaScript既可以用于客户端开发,也可用于服务器端。因此,开发人员觉得该语言简单易用,而且也可以避开其他服务器端的语言(比如PHP)。
  • JavaScript是一种跨平台的编程语言。例如,通过Facebook支持的React Native 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的地位。

2.Python越来越受欢迎

Python最初发布于1991年(所以实际上它比JavaScript更早)。Python是一种功能强大的编程语言,越来越受关注。

它是一种高级通用语言,可以完成各种类型的任务,包括构建Web应用程序、分析数据和创建机器学习算法。

以下是Python人气急剧上升的三个主要原因:

  • Python因其简单易用的语法而获得了很多赞誉。该语言强调代码的可读性和简单性,因此成为了许多新手开发人员的首选。
  • Python的可靠性和效率赢得了许多人工智能专家的喜爱。因此,随着目前机器学习和数据科学应用程序使用的增加,Python已成为该领域专业人士的首选。更重要的是,Python拥有一些库可以简化各种科学任务的工作。
  • 与JavaScript一样,Python也有一个支持语言发展的活跃社区。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在这两年内只有非常小的流量增长。

3.总结

虽然多年来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。

01.抓取的学习资料

如今网上的在线学习资料可谓是多如牛毛,为了方便讲解,小编就利用python3.9.2的中文文档作为演示的例子,来将其抓取并保存到本地,其网页链接如下:

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

打开上述链接后,大家会在网页中找到不同内容的链接地址,包括了基础的python字符、python语法等内容。

02.获取网页链接

在上图中,我们需要格外关注的是红色方格标注的链接,每个链接都会跳转到对应的子网页中,而在子网页中,就是我们想要保存的内容。

可以看到,上图中,在python速览子页面中,包含了我们需要提取的文字内容。所以将html内容保存为pdf的第一步便是获取到子页面的链接。由于教程大都是固定内容,因此对于教程的网页,大都采用的是静态页面,在网页源代码中可以很轻松地找到子页面的网页链接。

对于子网页的链接抓取,程序如下图所示:

程序中,通过BeautifulSoup库来解析网页源代码,然后提取所有的子页面链接地址并返回,如果抓取失败,则直接返回None


03.html转pdf

在得到子网页的链接后,接下来就是将html的子网页保存为pdf文件。小编使用的pdfkit库,pdfkit库可以将网页保存为pdf文档。首先小编来介绍一下pdfkit库的安装。

  • 下载https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.mxe-cross-win64.7z 并解压到本地文件中。(后台输入:pdf) 直接获取。
  • 将解压文件中的bin文件路径添加到系统变量Path中。
  • 执行pip install pdfkit
  • 执行pip install wkhtmltopdf

按照上述的操作流程,就可以安装pdfkit库。对于pdfkit库的使用,常见的用法有以下三种:

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

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

  • 然后分别通过from_url、from_file和from_string的三种方式来保存为pdf文件;
  • 需要注意的是,from_file和from_url中的第一个参数必须是一个html的字符串或者是html文档的列表;
  • 但是小编通过程序运行发现,from_url第一个参数只能是html的字符串,不能是html的列表


因此,pdfkit库只能将子网页保存为单独的pdf文档,无法直接通过pdfkit库将所有的子网页拼接成一个完整的pdf文档,小编通过PyPDF2库中的PdfFileMerger类来实现pdf文档的拼接。程序如下图所示。

程序中首先将所有的html网页保存为单独的pdf文档,然后通过PdfFileMerger类对象来实现pdf文档的拼接。最后就可以得到全部的pdf内容。最后我们通过视频的展示,来看一下程序的效果吧。


除此之外,程序不光可以抓取python3.9的中文文档,针对其他的在线文档,只需要对获取网页链接的程序进行修改即可抓取,例如对于Flask中文文档的抓取,程序只需要按照下图进行修改,即可将Flask的在线文档保存为PDF文档。

04.总结

学习Python其实非常有趣,也很有用。因为Python有大量的现成的库,可以帮助我们把工作中的很多琐碎的烦事轻松解决。小编将上述的程序稍加修改,很快就帮阿丽搞定了教程,保存为pdf发送给了她,小编与女神的关系更拉近了一步

深入Python Web开发的过程中,HTML模板渲染是构建动态Web应用的重要环节。今天将详细探讨如何使用Python中最流行的模板引擎之一——Jinja2来进行高效且灵活的模板渲染。通过具体的代码示例,将了解如何结合Flask框架与Jinja2实现数据与视图的完美分离。

Jinja2简介

Jinja2是一个强大的现代模板引擎,设计用于Python web开发项目,它支持变量替换、控制结构、过滤器和宏等丰富的功能。Flask框架默认集成并推荐使用Jinja2进行模板渲染,使其成为Python Web开发者手中不可或缺的工具。

安装与配置Jinja2(适用于未安装Flask环境)

如果已经安装过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模板,并将定义好的变量替换到相应的位置。

Jinja2高级特性

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编程!