网络上的python:你可以构建的惊人的东西

与流行的观点相反,Python不仅仅对数据处理和实用程序脚本有用。除了JavaScript和Ruby之外,Python是用于web开发的最佳语言之一。...

在许多方面,我们生活在web开发的黄金时代。Web技术从来没有像今天这样精益求精和灵活,如果你想建立一个高质量的网站或Web应用程序,你有很多可行的方法可以做到这一点——包括使用Python。

webdev-python

与流行的观点相反,Python不仅仅对数据处理和实用程序脚本有用。看一眼HotFrameworks.com网站您将看到第五个最流行的web框架是基于Python的。除了JavaScript和Ruby之外,Python是用于web开发的最佳语言之一。

python在web开发中的应用

在开发web应用程序时,Python的功能与PHP和Ruby类似:它主要用于处理后端处理和路由。网页仍然需要用HTML呈现,主题仍然用CSS处理,前端处理仍然用JavaScript完成。

这听起来可能让人不知所措,但这取决于您使用的pythonweb框架,它不必像听起来那么糟糕。例如,Django有一个模板系统,用于编写特殊的HTML文件,可以嵌入Python代码并与Python后端的数据交互。

007Ys3FFgy1h1olwug805j30im058mx9

这种框架称为全栈框架,它与处理HTTP请求、数据库存储、网页模板、路由请求等的系统一起提供。另一方面,你有一个非全栈框架,也称为微框架,它只处理基本的后端逻辑,需要与第三方数据库、模板引擎等结合使用。

一般来说,全栈框架有更陡的学习曲线,迫使您采用某些约定和结构,但提供您所需要的一切。微框架可以很快学会,而且更加灵活,但是您可能需要在每个新项目中重新发明轮子。

python与其他web开发语言之比较

在撰写本文时,像React这样的JavaScript框架正在大受欢迎,特别是在新手web开发人员中。思路是:“如果前端需要JavaScript,为什么后端不也使用JavaScript呢?”这是有道理的。PHP已经存在了几十年,有很多文档,所以它也是一个可行的选择。

在一天结束时,使用你想使用的任何语言。你能用一种语言做的任何事情都能用另一种语言做——真正重要的是你使用它的舒适程度。如果一门语言不适合你,你只会感到沮丧而放弃。但我喜欢蟒蛇的原因是:

  • Python干净易学。JavaScript和PHP都是“可编程的”(例如大量的大括号、奇怪的语法等),并且伴随着各种各样的包袱,这些包袱可能导致混乱和无法维护的代码。Python是最容易学习的语言之一,感觉不像是一种编程语言。它也很紧凑--您可以在几行代码中编写大量逻辑。
  • pythonweb框架的碎片较少。JavaScript有几十种常用的框架:主干、React、Vue、Angular、Knockout、Ember、Meteor等。Python也有很多框架,但只有少数框架被认真使用(参见下面的示例),因此社区没有那么分散。不过,PHP在Python上有优势,因为现在只有一个可行的框架:Laravel。
  • Python是一种通用语言。JavaScript主要局限于两个方面:web开发和移动应用开发。PHP更受限制,只能用于后端web开发。Python的灵活性要大得多,这意味着如果您从web开发开始,就可以随身携带您的专业知识。

流行的pythonweb框架

为了开始pythonweb开发,您应该认真考虑使用以下方法之一。它们都是健壮的,有着大量的历史,所以您可以放心地知道,它们对于生产使用来说已经足够好了,不会在一夜之间消失。

007Ys3FFgy1h1olwuxpcxj30im08vmxi

Django——为Python爱好者提供的一流的一体式web框架。它配备了几十个内置组件,都经过了良好的测试,保证可以协同工作。你必须学会“Django方式”来**web应用程序,但一旦你接受了这一点,快速开发就成了常态。如果你想要一份pythonweb开发人员的工作,Django几乎是唯一的途径。

关于Django需要注意的一点是:它非常擅长缩放。随着您的web应用程序越来越大,通常比使用另一个pythonweb框架更容易保持组织。Django是开源的,以防你有兴趣参与。

007Ys3FFgy1h1olwvexc3j30im08v3ys

Flask——一个微框架,它只提供足够的信息,让您可以完全控制要集成的第三方组件。从这个意义上说,它几乎与Django截然相反:Flask对如何构建web应用几乎没有任何意见。它简单易学。

这是一把双刃剑。如果你知道你需要使用这样或那样的技术,那么烧瓶可以是把它们粘在一起的最小胶水。然而,如果你没有经验,你可以在试图驯服烧瓶的过程中一次又一次地向自己的脚开枪。

007Ys3FFgy1h1olwvye7zj30im08vaao

金字塔——你可以把金字塔看作是Django和Flask之间的折衷。它远没有Django那么固执己见,你可以随心所欲地组织你的web应用程序,但它有点固执己见,不像Flask那么简单。

另一种想法是:金字塔有很多默认功能,但是可以很容易地根据需要覆盖它们。金字塔有一个大型的官方和非官方插件库,你可以根据每个项目来挑选。

使用python的站点示例

如果您已经走了这么远,并且仍然对Python用于web开发持怀疑态度,那么下面是一些使用上述框架创建的知名网站。您会发现Python是网站和web应用程序的最佳选择,无论是小型的、大型的、小型的还是复杂的。

007Ys3FFgy1h1olwwjktij30im08v3z0

007Ys3FFgy1h1olwx3nevj30im08vdge

007Ys3FFgy1h1olwxtj7yj30im08vt9m

007Ys3FFgy1h1olwyj9w8j30im08vjs6

007Ys3FFgy1h1olwzzibgj30im08v74o

007Ys3FFgy1h1olx11pdbj30im08vwfc

开始使用python进行web开发

准备好开始了但没有Python经验?别担心。查看我们的基本Python示例,了解Python的感觉,掌握基本原理。之后,请查看这些YouTube编程频道——特别是与Python和web开发相关的频道(在Django和Flask上查找)。

除此之外,我强烈推荐听一些编程播客。在Python和web开发的过程中,有几种方法可以并行不悖。我特别喜欢开发人员茶,一个简短的每日播客,激励和放松。

你觉得Python怎么样?你会用它来开发网页吗?你想创建什么样的网站或应用程序?请在下面的评论中与我们分享!

  • 发表于 2021-03-15 03:11
  • 阅读 ( 221 )
  • 分类:编程

你可能感兴趣的文章

红宝石(ruby)和python(python)的区别

...个线程的多线程应用程序。总的来说,Ruby对于web开发、网络编程和创建图形用户界面非常有用。 什么是python(python)? Python是一种高级通用编程语言。它是由Guido van Rossum设计的。Python因其易于阅读、学习和维护而被认为是初学者...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 338 )

树莓皮:非官方教程

...后,您可以将USB端口用于其他目的(例如附加存储或无线网络),而不是通过SSH输入文本命令。 5伏,通过微型USB电源适配器。 ...

  • 发布于 2021-03-13 15:59
  • 阅读 ( 286 )

为什么你应该通过这些在线课程学习道德黑客

... 但是现在黑客是一个合法的职业选择。这是一个网络专家门上的木瓦。他们中的一些人甚至可能会读到《工作中的道德黑客》。 ...

  • 发布于 2021-03-13 18:44
  • 阅读 ( 199 )

如何让python和javascript使用json进行通信

...。Tornado是一个不错的选择,就像Twisted一样(我以前为DIY网络摄像机写过Twisted)。我将在这个项目中使用烧瓶。 ...

  • 发布于 2021-03-16 01:22
  • 阅读 ( 294 )

适合初学者的11个最佳树莓圆周率项目

...传感器 创建数字相框 通过网络控制Pi 构建个人云 把旧打印机做成无线的 用Scratch编写游戏 用音速圆周率**音乐 构建网络游戏...

  • 发布于 2021-03-19 13:42
  • 阅读 ( 270 )

如何用raspberry-pi和ifttt构建光感应智能开关

... 因为Pi是一台可以连接到网络的微型计算机,所以你也可以将它设置为通过互联网进行控制。您的智能灯将有三个输入来确定何时亮起: ...

  • 发布于 2021-03-22 21:01
  • 阅读 ( 263 )

为什么python不是适合您的编程语言

... Python完全可以进行大规模web开发。Instagram是运行Python网络框架Django的最大网站。这可不是什么了不起的壮举,Instagram工程师李泽坤解释道: ...

  • 发布于 2021-03-23 11:47
  • 阅读 ( 352 )

如何使用googletensorflow和raspberry-pi构建diy人工智能项目

...它能和树莓皮一起吃吗?Pi是否能够维持一个工作的神经网络?有了谷歌TensorFlow,它可以! ...

  • 发布于 2021-03-23 18:25
  • 阅读 ( 208 )

6个有用的机器学习教程和课程,掌握要点

...人类每天执行的数以百万计的任务最终将被训练过的神经网络所取代。即使是现在,机器学习算法也会影响你的生活。 ...

  • 发布于 2021-03-24 09:25
  • 阅读 ( 284 )

如何使用python列表理解(以及何时不使用它们)

... 也许你会用Python控制Arduino,或者DIY Python网络安全摄像头呢? ...

  • 发布于 2021-03-24 12:24
  • 阅读 ( 230 )