中企动力 > 头条 > python有什么框架

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python有什么框架

7大Python深度学习框架哪家强? 企业视频课程

img

花心筒

关注

最近我无意间在「Best Python library for neural networks」话题下发现了一个我以前的数据科学栈交换(Data Science Stack Exchange)的答案,并且 Python 深度学习生态系统在过去两年半中的演变打击到了我。我在 2014 年 7 月推荐的库,pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。我们已经在 indico 的产品或者开发中使用了以下列表中的大部分的技术,但是对于剩下一些我们没有使用的,我将会借鉴他人的经验来帮助给出 2017 年 Python 深度学习生态系统的清晰的、详尽的理解。

确切地说,我们将会关注:

TheanoLasagneBlocksTensorFlowKerasMXNetPyTorch

下面是对这 7 大 Python 深度学习框架的描述以及优缺点的介绍,而且也为每个框架的使用推荐了一些资源,接下来大家一起看看吧

Theano

链接:https://github/Theano/Theano

描述:Theano 是一个 Python 库,允许你定义、优化并且有效地评估涉及到多维数组的数学表达式。它与 GPUs 一起工作并且在符号微分方面表现优秀。

文档:http://deeplearning/software/theano/

概述:Theano 是数值计算的主力,它支持了许多我们列表当中的其他的深度学习框架。Theano 由 Frédéric Bastien 创建,这是蒙特利尔大学机器学习研究所(MILA)背后的一个非常优秀的研究团队。它的 API 水平较低,并且为了写出效率高的 Theano,你需要对隐藏在其他框架幕后的算法相当的熟悉。如果你有着丰富的学术机器学习知识,正在寻找你的模型的精细的控制方法,或者想要实现一个新奇的或者不同寻常的模型,Theano 是你的首选库。总而言之,为了灵活性,Theano 牺牲了易用性。

优点:

灵活正确使用时的高性能

缺点:

较高的学习难度低水平的 API编译复杂的符号图可能很慢

Lasagne

链接:https://github/Lasagne/Lasagne

描述:在 Theano 上建立和训练神经网络的轻量级库

文档:http://lasagne.readthedocs.org/

概述:因为 Theano 致力于成为符号数学中最先且最好的库,Lasagne 提供了在 Theano 顶部的抽象,这使得它更适合于深度学习。它主要由当前 DeepMind 研究科学家 Sander Dieleman 编写并维护。Lasagne 并非是根据符号变量之间的函数关系来指定网络模型,而是允许用户在层级思考,为用户提供了例如「Conv2DLayer」和「DropoutLayer」的构建块。Lasagne 在牺牲了很少的灵活性的同时,提供了丰富的公共组件来帮助图层定义、图层初始化、模型正则化、模型监控和模型训练。

仍旧非常灵活比Theano 更高级的抽象文档和代码中包含了各种 Pasta Puns

社区小

Blocks

链接:https://github/mila-udem/blocks

描述:用于构建和训练神经网络的 Theano 框架

文档:http://blocks.readthedocs.io/en/latest/

概述:与 Lasagne 类似,Blocks 是在 Theano 顶部添加一个抽象层使深度学习模型比编写原始的 Theano 更清晰、更简单、定义更加标准化。它是由蒙特利尔大学机器学习研究所(MILA)编写,其中一些人为搭建 Theano 和第一个神经网络定义的高级接口(已经淘汰的 PyLearn2)贡献了自己的一份力量。比起 Lasagne,Blocks 灵活一点,代价是入门台阶较高,想要高效的使用它有不小的难度。除此之外,Blocks 对递归神经网络架构(recurrent neural network architectures)有很好的支持,所以如果你有兴趣探索这种类型的模型,它值得一看。除了 TensorFlow,对于许多我们已经部署在 indico 产品中的 API,Blocks 是其首选库。

仍旧非常灵活比Theano 更高级的抽象易于测试

较高的学习难度更小的社区

TensorFlow

链接:https://github/tensorflow/tensorflow

描述:用于数值计算的使用数据流图的开源软件库

文档:https://tensorflow.org/api_docs/python/

概述:TensorFlow 是较低级别的符号库(比如 Theano)和较高级别的网络规范库(比如 Blocks 和 Lasagne)的混合。即使它是 Python 深度学习库集合的最新成员,在 Google Brain 团队支持下,它可能已经是最大的活跃社区了。它支持在多 GPUs 上运行深度学习模型,为高效的数据流水线提供使用程序,并具有用于模型的检查,可视化和序列化的内置模块。最近,TensorFlow 团队决定支持 Keras(我们列表中下一个深度学习库)。虽然 TensorFlow 有着自己的缺点,但是社区似乎同意这一决定,社区的庞大规模和项目背后巨大的动力意味着学习 TensorFlow 是一次安全的赌注。因此,TensorFlow 是我们今天在 indico 选择的深度学习库。

由软件巨头 Google 支持非常大的社区低级和高级接口网络训练比基于 Theano 配置更快的模型编译完全地多 GPU 支持

虽然Tensorflow 正在追赶,但是最初在许多基准上比基于 Theano 的慢。RNN 支持仍不如 Theano

Keras

链接:https://github/fchollet/keras

描述:Python 的深度学习库。支持 Convnets、递归神经网络等。在 Theano 或者 TensorFlow 上运行。

文档:https://keras.io/

概述:Keras 也许是水平最高,对用户最友好的库了。由 Francis Chollet(Google Brain 团队中的另一个成员)编写和维护。它允许用户选择其所构建的模型是在 Theano 上或是在 TensorFlow 上的符号图上执行。Keras 的用户界面受启发于 Torch,所以如果你以前有过使用 Lua 语言的机器学习经验,Keras 绝对值得一看。由于部分非常优秀的文档和其相对易用性,Keras 的社区非常大并且非常活跃。最近,TensorFlow 团队宣布计划与 Keras 一起支持内置,所以很快 Keras 将是 TensorFlow 项目的一个分组。

可供选择的 Theano 或者 TensorFlow 后端直观、高级别的端口更易学习

不太灵活,比其他选择更规范

MXNet

链接:https://github/dmlc/mxnet

描述:MXNet 是一个旨在提高效率和灵活性的深度学习框架。

文档:http://mxnet.io/api/python/index.html#python-api-reference

概述:MXNet 是亚马逊(Amazon)选择的深度学习库,并且也许是最优秀的库。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。对 Python 的支持只是其冰山一角—MXNet 同样提供了对 R、Julia、C++、Scala、Matlab,和 Javascript 的接口。如果你正在寻找最佳的性能,选择 MXNet 吧,但是你必须愿意处理与之相对的一些 MXNet 的怪癖。

速度的标杆非常灵活

最小的社区比Theano 更困难的学习难度

PyTorch

链接:https://github/pytorch/pytorch

描述:Python 中的张量(Tensors)和动态神经网络,有着强大的 GPU 加速。

文档:http://pytorch.org/docs/

概述:刚刚放出一段时间,PyTorch 就已经是我们 Python 深度学习框架列表中的一个新的成员了。它是从 Lua 的 Torch 库到 Python 的松散端口,由于它由 Facebook 的 人工智能研究团队(Artificial Intelligence Research team (FAIR))支持且因为它用于处理动态计算图(Theano,TensorFlow 或者其他衍生品没有的特性,编译者注:现在 TensorFlow 好像支持动态计算图),它变得非常的有名。PyTorch 在 Python 深度学习生态系统将扮演怎样的角色还不得而知,但所有的迹象都表明,PyTorch 是我们列表中其他框架的一个非常棒的选择。

来自Facebook 组织的支持完全地对动态图的支持高级和低级 API 的混合

比其他选择,PyTorch 还不太成熟(用他们自己的话说—「我们正处于早期测试版本。期待一些冒险」)除了官方文档以外,只有有限的参考文献/资源

今天就分享到这里了哦,明天咱们再继续~么么哒

八款常用的 Python GUI 开发框架推荐 企业视频课程

img

紫牧

关注

作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言。

Python 的 UI 开发工具包 Kivy

https://oschina/p/kivy

Kivy是一个开源工具包能够让使用相同源代码创建的程序能跨平台运行。它主要关注创新型用户界面开发,如:多点触摸应用程序。Kivy还提供一个多点触摸鼠标模拟器。当前支持的平台包括:Linux、Windows、Mac OS X和Android。

Kivy拥有能够处理动画、缓存、手势、绘图等功能。它还内置许多用户界面控件如:按纽、摄影机、表格、Slider和树形控件等。

Python 的 GUI 开发工具 Flexx

https://oschina/p/flexx

Flexx 是一个纯 Python 工具包,用来创建图形化界面应用程序。其使用 Web 技术进行界面的渲染。你可以用 Flexx 来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档。因为使用纯 Python 开发,所以 Flexx 是跨平台的。只需要有 Python 和浏览器就可以运行。如果是使用桌面模式运行,推荐使用 Firefox 。

Qt 库的 Python 绑定 PyQt

https://oschina/p/pyqt

PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。PyQt是用SIP写的。PyQt 提供 GPL版和商业版。

Python图形开发包 wxPython

https://oschina/p/wxpython

wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库 wxWidgets 的 Python 封装和 Python 模块的方式提供给用户的。

就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows、绝大多数的Unix或类Unix系统、Macintosh OS X上。

Tk 图形用户界面 Tkinter

https://oschina/p/tkinter

Tkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。Tk和Tkinter可以运行在大多数的Unix平台、Windows、和Macintosh系统。

Tkinter 由一定数量的模块组成。Tkinter位于一个名为_tkinter(较早的版本名为tkinter)的二进制模块中 。Tkinter包含了对Tk的低 级接口模块,低级接口并不会被应用级程序员直接使用,通常是一个共享库(或DLL),但是在一些情况下它也被Python解释器静态链接。

Pywin32

https://oschina/p/pywin32

Windows Pywin32允许你像VC一样的形式来使用PYTHON开发win32应用。代码风格可以类似win32 sdk,也可以类似MFC,由你选择。如果你仍不放弃vc一样的代码过程在python下,那么这就是一个不错的选择。

Python 图形界面开发包 PyGTK

https://oschina/p/pygtk

PyGTK让你用Python轻松创建具有图形用户界面的程序.底层的GTK+提供了各式的可视元素和功能,如果需要,你能开发在GNOME桌面系统运行的功能完整的软件.

PyGTK真正具有跨平台性,它能不加修改地,稳定运行各种操作系统之上,如Linux,Windows,MacOS等.除了简单易用和快速的原型开发能力外,PyGTK还有一流的处理本地化语言的独特功能.

用python快速开发绚丽桌面程序 pyui4win

https://oschina/p/py-ui4win

pyui4win是一个开源的采用自绘技术的界面库。支持C++和python。用它可以很容易实现QQ和360安全卫士这样的绚丽界面。而且,pyui4win有所见即所得界面设计器,让C++开发人员和python开发人员直接用

设计工具设计界面,而不用关心界面如何生成和运行,可以显著缩短界面开发时间。在pyui4win中,界面甚至可以完全交给美工去处理,开发人员可以只负责处理业务逻辑,把开发人员彻底从繁杂的界面处理中解放出来。

文章来源:开源中国

文章编辑:灯塔大数据

13个Python web框架比较 流量视频课程

img

侯鬼神

关注

Python程序员有很多很好的选择来创建Web应用程序和API;Django,Weppy,Bottle和Flask引领潮流。

如果正在开发一个Web应用程序并且已经选择使用Python作为构建它的语言,那么这是一个明智的选择。Python的开发成熟度,强大的库以及广泛的实际应用使其成为Web开发的必需。

现在是困难的部分:从众多可用的Python web框架中选择一个。它们不仅数量在不断增长,而且很难找到最适合你的。如果你正在构建一个快速而又简单的REST API,那么你将不需要任何完整的面向用户的应用程序所需的管道和连接,该应用程序具有用户登录、表单验证和上传处理就可以了。

在本文中,我们将研究13种最广泛部署的Python web框架。我们将关注每种web应用程序最适合构建哪种类型的web应用程序,并研究它们如何在以下六个方面相互竞争:

安装:设置不需要正式的框架项目(它可以简单地作为包含的模块放到现有的项目中)、启动所需的模板文件最少、或者带有某种预先配置的设置,这是多么容易或简单。

文档:几乎每一个像样的Python项目都有文档,可以遍历设置、演示基本用例并提供关于API的详细信息。在这里,我们给这样的框架更高的分数:这些框架展示了如何在教程中创建整个应用程序,包括常见的配方或设计模式,以及超出职责范围(例如提供有关如何运行的详细信息) Python变体(如PyPy或IronPython)下的框架。

管理:这是相对得分,表示配置和维护框架需要做多少工作。默认情况下,工作量最小的框架得分更高。

原生能力:包含多少组件?得分较高的是那些为国际化,HTML模板和数据访问层提供原生支持的框架。还有一些框架使用Python最近引入的异步I/O操作的原生支持。

安全性:提供原生安全措施(如跨站点请求伪造(CSRF)保护和使用加密cookie的会话管理)的框架获得更高的分数。

可伸缩性:大多数Python框架可以利用像Gevent或Gunicorn这样的项目来大规模运行。在这里,我们看一下提升可伸缩性的框架原生特性,如输出和页面片段缓存。

如果你对性能基准感到好奇,请查看TechEmpower正在进行的一系列试验,这些试验比较了各种任务中的多个Web框架,并将代码和方法发布到GitHub并进行不断的重新评估。并非所有讨论中的框架都在那里进行了分析,但是可以很好地了解哪种框架在哪种负载下表现最佳。

我们将分析13个框架。其中五个:CubicWeb,Django,Web2py,Weppy和Zope2,采用“控件”方法,包含你可以想象的Web应用程序所需的大多数功能。其余八个框架: Bottle,CherryPy,Falcon,Flask,Pyramid,Tornado,Web.py和Wheezy.web,提供更简约的外观,交易批量和完整性,简单易用。

让我们从重量级开始吧。

重量级的Python Web框架

CubicWeb

CubicWeb被称为“一个支持重用和面向对象设计的语义Web应用程序框架。”这是一个有趣的系统,强调使用抽象和可重用的代码块称为“多维数据集”,但对于某些开发人员来说可能过于抽象或特殊。

多维数据集是具有模式(数据模型),实体(编程逻辑)和视图的软件组件。通过组合多个立方体,每个立方体执行自己的任务,可以通过重用自己的代码和其他代码来编写软件应用程序。

CubicWeb的核心是提供每个Web应用程序使用的基本搭建材料:用于数据连接和存储的“存储库”;用于基本HTTP请求/响应和CRUD操作的“Web引擎”;以及用于建模数据的模式。所有这些都在Python类定义中描述。要设置和管理CubicWeb的实例,可以使用类似于Django的命令行工具。

CubicWeb似乎没有使用Python 3的原生异步功能。包含异步的一种迂回方式是使用cubicweb.pyramid模块将Pyramid框架用作Web服务器,并使用异步构造在Pyramid上绘制。但是现在看起来更加直截了当。

要在CubicWeb应用程序中获取或操作持久数据,可以使用关系查询语言(RQL),它采用模糊的SQL语法,但在W3C的SparQL之后进行模式化。CubicWeb的理由再次是抽象:RQL提供了一种高度分离的路径来相互关联各种数据源。但是,随着它的实现,通过手动构建查询作为字符串,它可能会让习惯于ORM的开发人员感到过时。

使用CubicWeb还有其他障碍。首先,设置可能很麻烦。因为CubicWeb有很多依赖项,所以最好使用pip install来获取所有依赖项。可能还必须在本地环境中执行一定数量的手动调整。这与运行pip install或将框架代码放入另一个项目的子文件夹的其他框架形成鲜明对比,这就是所需要的。

另一个潜在的问题是缺少本机模板引擎;生成HTML留给开发人员。可以通过使用像Jinja2这样的第三方模板系统或选择为Web UI提供工具的多维数据集来克服这个问题,例如Boostrap HTML框架的工具。

CubicWeb的一个长期问题,缺乏Python 3支持,目前已经解决。截至2016年6月的版本3.23,CubicWeb支持Python 3,但Twisted等模块本身并未完全移植。

与Web2py一样,CubicWeb将其冗长的文档称为“书籍”。它需要时间来解释CubicWeb的不寻常方法,演示如何构建一些基本应用程序,包括API引用,并且通常不会特定的方式。

Django

自Django首次出现以来已经有十年,它已经成为Python最广泛部署的用于创建Web应用程序的框架之一。 Django配备了你可能需要的大部分组件,因此它倾向于构建大型应用程序而不是小型应用程序。

经过多年在版本1.x后,Django最近在小数点的左边创建了一个版本。 Django 2.0中最大的变化是框架现在只适用于Python 3.4及更高版本。理想情况下,你应该使用Python 3.x,所以使用Django的1.x分支的唯一原因是你遇到了旧版本的Python。

Django吸引力的一个关键部分是部署速度。因为它包含了开发普通Web应用程序所需的许多部分,所以可以快速行动。路由,URL解析,数据库连接(包括ORM),表单验证,攻击保护和模板都是内置的。

将找到最常见的Web应用程序方案的构建块。例如,用户管理可在大多数网站上找到,因此Django将其作为标准元素提供。Django本身具有这些功能,而不必创建自己的系统来跟踪用户帐户,会话,密码,登录/注销,管理员权限等。它们可以按原样使用或扩展,以包含最少量工作的新用例。

核心是BSD,一些组件是LGPLv3。可通过zope.formlib获得;单独安装但作为项目的一部分支持。通过第三方扩展程序提供。

Django具有健全和安全的默认设置,有助于保护Web应用程序免受攻击。将变量放在页面模板中时,例如带有HTML或JavaScript的字符串,除非明确将变量实例指定为安全,否则不会按字面意义呈现内容。这本身就减少了许多常见的跨站脚本问题。如果要执行表单验证,可以使用从简单的CSRF保护到返回详细错误反馈的完整逐个字段验证机制的所有内容。

如果没有强大的文档可以使用像Django那样丰富和广泛的功能。Django的文档站点从多个角度深入研究框架的各个方面。使用Python 3或其他语言,正确的安全性,实现常见的Web应用程序组件(如会话或分页),生成站点地图,它们都被覆盖。还详细描述了应用程序模型,视图和模板的每个层的API。

然而,强大的力量带来了极大的复杂性。Django应用程序以其头重脚轻而闻名,具有许多移动部件。即使只有几条路线的简单Django应用程序也需要相当多的配置才能运行。如果你的工作只是设置几个简单的REST端点,Django几乎肯定是矫枉过正的。

Django也有它的怪癖。例如,页面模板不能使用callables。示例:可以将{{user.name}}作为模板中的组件传递,但不能传递{{user.get_name()}}。这是Django确保模板不会无意中做出令人讨厌的事情的方法之一,但如果你没有为它们做好准备,这些限制可能会很刺激。虽然有解决方法,但它们往往会对性能产生影响。

Django的核心是同步。但是,添加异步行为的一种方法是通过Django Channels项目。这个项目是官方的Django附加组件,它为Django添加了对连接和套接字的异步处理,同时保留了Django的编程习惯用法。

web2py

在Ruby世界中,Ruby on Rails是事实上的Web框架。DePaul大学计算机科学教授Massimo Di Pierro受到Rails的启发,用Python创建一个易于设置和使用的Web框架。结果是Web2py。

Web2py最大的吸引力在于其内置的开发环境。当设置Web2py实例时,将获得一个Web界面,实际上是一个在线Python应用程序编辑器,可以在其中配置应用程序的组件。这通常意味着创建模型,视图和控制器,每个都通过Python模块或HTML模板进行描述。一些示例应用程序随附Web2py。可以将它们分开来查看它们的工作方式,或将它们用作启动器模板来创建自己的应用程序。

开发人员通常只需下载源代码并使用它来部署Web2py。但对于Windows或MacOS上技术含量较低的用户,Web2py的创建者提供的版本基本上是独立服务器。下载,解压缩并运行其中一个版本,将拥有一个内置Web2py预配置副本的本地Web服务器。这是一个很好的方法来创建一个Web2py应用程序,然后可以部署其他地方。

Web2py的Web界面是使用Bootstrap 2.16.1构建的,因此它易于操作并且易于导航。浏览器内编辑器不能替代完整的IDE,但它配备了有用的辅助工具,如行编号和Python语法高亮(包括自动缩进)。还包括一个Python shell的快速Web界面,因此如果需要,可以从命令行与Web2py交互,这对专家来说是一个很好的让步。

Web2py中使用的数据抽象系统与Django的ORM和受其启发的其他ORM(例如Peewee)略有不同。这些系统使用Python类来定义模型,在Web2py中,使用构造函数(如define_table)来实例化模型。这些差异中的大部分可能只会对那些已经有过经验并且开始使用另一个的人产生震动;他们对新人来说同样复杂。将Web2py连接到数据提供者可能不会遇到任何麻烦,因为它几乎涉及现有的每个主要数据库。

一个真正有用的数据库相关功能是生成模型图的能力,更好地可视化模型之间的相互关系。但是,需要安装pygraphviz库才能启用该功能。

Web2py通过对jQuery和AJAX的集成支持,提供许多其他专业级组件:国际化功能,多种缓存方法,访问控制和授权,甚至前端效果(例如,表单中的日期选择器)。虽然不允许使用中间件来替换核心Web2py功能,但也包括外部和内部中间件的挂钩。

Web2py的一个重要限制是它仅与Python 2.x兼容。首先,这意味着Web2py无法使用Python 3的异步语法。如果你依赖于Python 3独有的外部库,那么你就不走运了。但是,正在开展使Web2py Python 3兼容的工作,并且在撰写本文时它已接近完成。

毫无疑问,Web2py的文档被称为“书”。首先,它涵盖了Web2py,Python以及用于这两者的部署环境的大量材料。其次,它以高度可访问的叙事风格书写。第三,它深入讨论了常见的应用程序构建方案。例如,有一整章使用jQuery(与Web2Py捆绑在一起)来构建AJAX应用程序。

Weppy

Weppy感觉就像Flask的简约风格和Django的完整性之间的中间标记。虽然开发Weppy应用程序具有Flash的直接性,但Weppy具有Django中的许多功能,如数据层和身份验证。因此,Weppy适用于从极其简单到适度复杂的应用程序。

乍一看,Weppy代码看起来很像Flask或Bottle代码。启动和运行基本的单路网站需要很少的指示。路径可以通过函数装饰器(简单方法)或以编程方式描述,并且这样做的语法与Flask/Bottle密切相关。除了语法的微小变化外,模板的工作方式大致相同。

Weppy与其他框架形成鲜明对比,包括它们仅作为插件或附加组件包含的一些功能。例如,Flask和Bottle都没有内置的ORM或数据管理系统。Weppy包含一个ORM,虽然它是基于pyDAL项目而不是更受欢迎的SQLAlchemy。Weppy甚至支持模式迁移,Django支持模式迁移作为其ORM的一部分(同样,Django的迁移系统也更加自动化)。虽然Weppy有一个扩展机制,但官方批准的附加组件列表很小,远小于Flask的扩展目录。

像Weppy这样的轻量级框架通常用于构建RESTful API,而Weppy则为此配备了便利功能。在路由上放置一个@service修饰器,返回的数据将自动格式化为选择的JSON或XML。

Weppy包含的其他功能更符合更大的框架,但它们是在没有批量的情况下实现的。示例:数据验证机制,表单处理,响应缓存和用户验证。在所有这些情况下,Weppy采取“恰到好处”的方法。提供的功能并不像在Django大小的框架中那样完整,但开发人员不需要投入大量精力来使它们变得有用,并且它们可以在事后得到扩展。

Weppy中发现的另一个通常与更重量级框架相关的功能是国际化支持。模板中的字符串可以根据应用程序提供的区域设置文件进行翻译,这些文件是简单的Python字典。也可以通过解析浏览器请求(即Accept-Language HTTP标头)或将翻译绑定到特定路由来设置语言选择。

Weppy的文档与框架本身具有相同的风格。它干净,可读,并且被人类消费。除了通常的“hello world”应用程序示例之外,它还包含一个很好的演练教程,可以让你创建一个微博系统作为初学者项目。

Weppy的长期计划包括支持异步和套接字作...

Python的框架可以用来做什么? 营销视频课程

img

若化生

关注

初学者有什么不懂的可以私信我——我刚整理了一套2018最新的0基础入门教程,无私分享,获取方法:关注小编头条号,发私信:【学习资料】 即可获取,内附:开发工具和安装包,以及系统学习路线图。

python能够用来干什么?

1、WEB前端

效劳器端编程,具有丰厚的Web开发框架,如Django和TurboGears,快速完成一个网站的开发和Web效劳。典型如国内的豆瓣、果壳网等;国外的Google、Dropbox等。

2、系统网络运维

在运维的作业中,有大量重复性作业的地方,并需要做管理系统、监控系统、发布系统等,将作业自动化起来,进步作业效率,这样的场景Python是一门十分合适的语言。

3、科学与数字核算

Python被广泛的运用于科学和数字核算中,例如生物信息学、物理、建筑、地理信息系统、图画可视化分析、生命科学等,常用numpy、SciPy、Biopython、SunPy等。

4、3D游戏开发

Python有很好的3D渲染库和游戏开发框架,有许多运用Python开发的游戏,如迪斯尼卡通城、黑暗之刃。常用PyGame、Pykyra等和一个PyWeek的比赛。

5、图形界面开发

Python可编写桌面图形用户界面,还能够扩展微软的Windows,常用Tk、GTK+、PyQt、win32等。

6、网络编程

除了网络和互联网的支撑,Python还供给了对底层网络的支撑,有易于运用的Socket接口和一个异步的网络编程框架Twisted Python.

今天的文章给大家带到这里,一直在坚持给大家更新文章,如果对你有所帮助,可以多多转发和关注。

初学者有什么不懂的可以私信我——我刚整理了一套2018最新的0基础入门教程,无私分享,获取方法:关注小编头条号,发私信:【学习资料】 即可获取,内附:开发工具和安装包,以及系统学习路线图。

2018年要学习的10大Python Web框架 行业视频课程

img

颜初

关注

通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松。他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素。

在本文中,我们分享了我们自己的前十大Python Web框架列表,我们认为这些列表对于您成为专业后端开发人员以及改进现有技能集的方式将会非常有用。请记住,这些框架并没有按照特定的顺序排列:我们专注于展示你能做什么,而不是告诉你应该做什么。

有些事情要考虑

在决定使用哪个框架时,请查看项目的规模和复杂程度。如果您希望开发的是一个包含功能和需求的大型系统,那么全栈框架可能是正确的选择。如果你的应用在更小和更简单的一面,你应该考虑一个微框架。

你可以找到一些框架的种类和焦点信息在这里。但是,最终的决定应该来自您对项目的理解以及您想要简化的任务。

但是,框架也可能阻碍发展。在选择全栈框架时,您经常注册一组限制。当然,你可以找到解决这些问题的方法,但要小心,不要花更多的时间来争取自己的自由,而是要用纯Python编写应用程序。

全堆栈框架

Django是一个免费的开源全栈Python框架。它试图默认包含所有必要的功能,而不是将它们作为单独的库提供。

Django的一些示例性功能是它的身份验证,URL路由,,对象关系映射器(ORM)和数据库模式迁移(Django v.1.7 +)。

Django使用它的ORM将对象映射到数据库表。相同的代码适用于不同的数据库,并不难从一个数据库转移到另一个数据库。Django使用的主要数据库是PostgreSQL,MySQL,SQLite和Oracle,但第三方驱动程序也允许您使用其他数据库。

在SteelKiwi,我们使用Django作为后端开发的主要框架。如果您想看看我们已经使用Django开发的惊人的应用程序,请访问我们的项目页面。

Pyramid是一个开源的基于Python的Web应用程序框架。其主要目标是尽可能以最小的复杂性进行操作。

金字塔最显着的特点是它能够同时适用于小型和大型应用程序。金字塔的一些很棒的功能包括:

单文件应用程序

全面支持模板和资产规范

灵活的认证和授权

,支持和全面的数据文档

和许多每个路由视图

TurboGears是一个开源的,数据驱动的全栈Web应用程序框架。

它允许您快速开发可扩展的数据驱动的Web应用程序。TurboGears配备了用户友好的模板和强大灵活的ORM。

TurboGears的一些独特功能包括:

多数据库支持

MVC风格的架构

支持SQLObject和SQLAlchemy

和Genshi包含在首选的模板语言中

使用FormEncode进行验证

作为网络服务器的塔

一个简化前端设计和服务器开发协调的应用程序库

模板

面向前端的基于WSGI的服务器(粘贴HTTP服务器,CherryPy WSGI / HTTP服务器等)

命令行工具

集成

所有功能都作为函数装饰器实现

Web2py是一个可扩展的开源全栈Python框架。但是,在进一步阅读之前,您应该知道Web2py不支持Python 3。

不过,Web2py的优点在于它配备了自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。

其他有价值的Web2py功能包括:

没有安装和配置要求

能够在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5-2.7或Java + Python的虚拟主机上运行

多种协议的可读性

数据安全可防止跨站点脚本,注入漏洞和恶意文件执行等漏洞

成功使用软件工程实践,使代码易于阅读和维护

错误跟踪,彻底的错误记录和票务

支持国际化

向后兼容性确保以用户为导向,而不需要失去与早期版本的联系

Flask是一个在BSD许可下可用的Python框架。它受到了Sinatra Ruby框架的启发。Flask依赖于Werkzeug WSGI工具包和Jinja2模板。

Flask背后的主要思想是帮助构建坚实的Web应用程序基础。从那里,你可以使用任何你可能需要的扩展。

Flask的轻量化和模块化设计使其能够轻松适应开发人员的需求。它包含许多有用的开箱即用功能:

内置开发服务器和快速调试器

集成支持单元测试

安全的Cookie支持(客户端会话)

WSGI 1.0合规性

基于Unicode

能够插入任何ORM

HTTP请求处理

瓶子是一个微框架。Bottle最初意味着构建API,它将所有内容都实现在一个源文件中。除了Python标准库之外,它没有任何依赖关系。使用Bottle进行编码可以让您更接近金属而不是使用任何全栈框架进行编码。

其默认功能包括路由,模板,实用程序以及WSGI标准的基本抽象。

路由 - 支持对函数调用映射的请求,使您可以实现干净和动态的URL

模板 - 快速和Pythonic 开箱即用,全面支持mako,jinja2和猎豹

实用程序 - 舒适地访问表单数据,文件上传,Cookie,标题和其他与HTTP相关的元数据

服务器-支持一个内置的HTTP开发服务器fapws3,比约恩,GAE,СherryPy,以及任何其他WSGI能力的HTTP服务器

Bottle是原型开发,学习Web框架组织以及构建简单个人应用的完美解决方案。

CherryPy是一个开源,极简主义的Web框架。它使构建Python Web应用程序与构建任何其他面向对象的程序无异。

事实上,CherryPy支持的网络应用程序是一个独立的Python应用程序,它嵌入了自己的多线程网络服务器。CherryPy应用程序可在任何支持Python的操作系统上运行(Windows,MacOS,Linux等)。它们可以部署在任何可以运行普通Python应用程序的地方。CherryPy应用程序不需要Apache,但是您可以在Apache后面运行CherryPy应用程序,以及在Lighttpd或IIS后面运行它。

CherryPy不是一个非常有限的框架,因为它允许您使用任何类型的技术进行模板化,数据访问等。但是,它仍然能够处理会话,静态,Cookie,文件上传以及web框架通常可以执行的其他任何操作。

一些默认的CherryPy功能包括:

一个HTTP / 1.1兼容WSGI线程池网络服务器

简单一次运行多个HTTP服务器

一个强大的配置系统

一个灵活的插件系统

出的现成的工具缓存,编码,会话,认证,静态内容,并等

内置支持分析,覆盖和测试

能够在Python 2.7+,Python 3.1+,PyPy,Jython和Android上运行

异步框架

Sanic是一个构建在uvloop上的Python Web框架,专门为通过异步请求处理的快速HTTP响应而创建。

它运行在Python 3.5+上。Sanic支持异步请求处理程序,这使它与Python 3.5的异步/等待函数兼容。这提高了速度,提供了非阻塞功能。

在一个进程和100个连接的基准测试中,Sanic每秒能够处理33,342个请求。

Tornado是一个Python Web框架和异步网络库。它使用非阻塞网络I / O并解决C10k问题(意思是说,如果配置正确,它可以处理10,000多个并发连接)。

这使它成为构建需要高性能和数万并发用户的应用程序的理想工具。

龙卷风的主要特点是:

内置的用户认证支持

实时服务

高品质的性能

基于Python的网页模板语言

非阻塞HTTP客户端

实施第三方认证和授权计划(Google OpenID / OAuth,Facebook登录,雅虎BBAuth,FriendFeed OpenID / OAuth,)

支持翻译和本土化

其他

Dash是一个开源Python框架,用于构建分析型Web应用程序。对于不熟悉Web开发的Python数据科学家来说,这尤其有利。

Dash应用程序是运行并通过HTTP请求与JSON数据包进行通信的Web服务器。他们的前端使用呈现组件

使用Dash开发的应用程序在Web浏览器中呈现,并可以部署到服务器。这也意味着Dash应用程序本质上是跨平台和移动就绪的。

Dash开发人员可以访问底层Flask实例及其所有可配置属性。为了扩展Dash应用程序的功能,开发人员还可以使用一套丰富的

选择一个Python Web框架

正确的框架可能是您开发一个成功项目所需的一切。我们真的希望你在本文中找到了一个有趣的框架。如果您有兴趣探索更多选项。

另外,欢迎私信小编交流 Python 的学习经验哦

python哪几种开源框架成为大主流【菜鸟必看】 企业视频课程

img

杨醉山

关注

使用Python进行Web应用程序开发的框架学习阶段。目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。今天就给大家介绍几个主流Python框架:Django、Tornado、Flask、Twisted。

①Django发布于2003年是一款用Python语言写的免费开源的 Python Web应用开发框架,是当前Python世界里最负盛名且最成熟的网络框架。最初用来制作在线新闻的Web站点,目前已发展为应用最广泛的Python网络框架。

②Tornado一这里是一款可扩展的,非阻塞的Web服务器,应用开发框架,以及异步联网库,一个强大的、支持协程、高效并发且可扩展的Web服务器Tornado的强项在于可以利用它的异步协程机制开发高并发的服务器系统。

③Flask是Python Web框架族里比较年轻的一个框架,这使得它吸收了其他框架的优点并且把自己的主要领域定义在了微小项目上。

④Twisted是一个有着十多年历史的开源事件驱动框架。Twisted不像前3种着眼于网络HTTP应用开发,而是适用于从传输层到自定义应用协议的所有类型的网络程序的开发,并能在不同的操作系统上提供很高的运行效率。支持许多常见的传输及应用层协议,如TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。还支持Unix domain sockets,在MIT许可下应用,Twisted附带了一个可以web服务器上运行的WSGI,它能够为其他Python web应用程序允许开发人员使用的服务器定制HTTP服务。

如果我的分享对你有帮助,请你关注我头条号。

2018年要学习的10大Python Web框架 企业视频课程

img

Levana

关注

通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松。他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素。

在本文中,我们分享了我们自己的前十大Python Web框架列表,我们认为这些列表对于您成为专业后端开发人员以及改进现有技能集的方式将会非常有用。请记住,这些框架并没有按照特定的顺序排列:我们专注于展示你能做什么,而不是告诉你应该做什么。

有些事情要考虑

在决定使用哪个框架时,请查看项目的规模和复杂程度。如果您希望开发的是一个包含功能和需求的大型系统,那么全栈框架可能是正确的选择。如果你的应用在更小和更简单的一面,你应该考虑一个微框架。

你可以找到一些框架的种类和焦点信息在这里。但是,最终的决定应该来自您对项目的理解以及您想要简化的任务。

但是,框架也可能阻碍发展。在选择全栈框架时,您经常注册一组限制。当然,你可以找到解决这些问题的方法,但要小心,不要花更多的时间来争取自己的自由,而是要用纯Python编写应用程序。

全堆栈框架

Django是一个免费的开源全栈Python框架。它试图默认包含所有必要的功能,而不是将它们作为单独的库提供。

Django的一些示例性功能是它的身份验证,URL路由,,对象关系映射器(ORM)和数据库模式迁移(Django v.1.7 +)。

Django使用它的ORM将对象映射到数据库表。相同的代码适用于不同的数据库,并不难从一个数据库转移到另一个数据库。Django使用的主要数据库是PostgreSQL,MySQL,SQLite和Oracle,但第三方驱动程序也允许您使用其他数据库。

在SteelKiwi,我们使用Django作为后端开发的主要框架。如果您想看看我们已经使用Django开发的惊人的应用程序,请访问我们的项目页面。

Pyramid是一个开源的基于Python的Web应用程序框架。其主要目标是尽可能以最小的复杂性进行操作。

金字塔最显着的特点是它能够同时适用于小型和大型应用程序。金字塔的一些很棒的功能包括:

单文件应用程序

全面支持模板和资产规范

灵活的认证和授权

,支持和全面的数据文档

和许多每个路由视图

TurboGears是一个开源的,数据驱动的全栈Web应用程序框架。

它允许您快速开发可扩展的数据驱动的Web应用程序。TurboGears配备了用户友好的模板和强大灵活的ORM。

TurboGears的一些独特功能包括:

多数据库支持

MVC风格的架构

支持SQLObject和SQLAlchemy

和Genshi包含在首选的模板语言中

使用FormEncode进行验证

作为网络服务器的塔

一个简化前端设计和服务器开发协调的应用程序库

模板

面向前端的基于WSGI的服务器(粘贴HTTP服务器,CherryPy WSGI / HTTP服务器等)

命令行工具

集成

所有功能都作为函数装饰器实现

Web2py是一个可扩展的开源全栈Python框架。但是,在进一步阅读之前,您应该知道Web2py不支持Python 3。

不过,Web2py的优点在于它配备了自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。

其他有价值的Web2py功能包括:

没有安装和配置要求

能够在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5-2.7或Java + Python的虚拟主机上运行

多种协议的可读性

数据安全可防止跨站点脚本,注入漏洞和恶意文件执行等漏洞

成功使用软件工程实践,使代码易于阅读和维护

错误跟踪,彻底的错误记录和票务

支持国际化

向后兼容性确保以用户为导向,而不需要失去与早期版本的联系

Flask是一个在BSD许可下可用的Python框架。它受到了Sinatra Ruby框架的启发。Flask依赖于Werkzeug WSGI工具包和Jinja2模板。

Flask背后的主要思想是帮助构建坚实的Web应用程序基础。从那里,你可以使用任何你可能需要的扩展。

Flask的轻量化和模块化设计使其能够轻松适应开发人员的需求。它包含许多有用的开箱即用功能:

内置开发服务器和快速调试器

集成支持单元测试

安全的Cookie支持(客户端会话)

WSGI 1.0合规性

基于Unicode

能够插入任何ORM

HTTP请求处理

瓶子是一个微框架。Bottle最初意味着构建API,它将所有内容都实现在一个源文件中。除了Python标准库之外,它没有任何依赖关系。使用Bottle进行编码可以让您更接近金属而不是使用任何全栈框架进行编码。

其默认功能包括路由,模板,实用程序以及WSGI标准的基本抽象。

路由 - 支持对函数调用映射的请求,使您可以实现干净和动态的URL

模板 - 快速和Pythonic 开箱即用,全面支持mako,jinja2和猎豹

实用程序 - 舒适地访问表单数据,文件上传,Cookie,标题和其他与HTTP相关的元数据

服务器-支持一个内置的HTTP开发服务器fapws3,比约恩,GAE,СherryPy,以及任何其他WSGI能力的HTTP服务器

Bottle是原型开发,学习Web框架组织以及构建简单个人应用的完美解决方案。

CherryPy是一个开源,极简主义的Web框架。它使构建Python Web应用程序与构建任何其他面向对象的程序无异。

事实上,CherryPy支持的网络应用程序是一个独立的Python应用程序,它嵌入了自己的多线程网络服务器。CherryPy应用程序可在任何支持Python的操作系统上运行(Windows,MacOS,Linux等)。它们可以部署在任何可以运行普通Python应用程序的地方。CherryPy应用程序不需要Apache,但是您可以在Apache后面运行CherryPy应用程序,以及在Lighttpd或IIS后面运行它。

CherryPy不是一个非常有限的框架,因为它允许您使用任何类型的技术进行模板化,数据访问等。但是,它仍然能够处理会话,静态,Cookie,文件上传以及web框架通常可以执行的其他任何操作。

一些默认的CherryPy功能包括:

一个HTTP / 1.1兼容WSGI线程池网络服务器

简单一次运行多个HTTP服务器

一个强大的配置系统

一个灵活的插件系统

出的现成的工具缓存,编码,会话,认证,静态内容,并等

内置支持分析,覆盖和测试

能够在Python 2.7+,Python 3.1+,PyPy,Jython和Android上运行

异步框架

Sanic是一个构建在uvloop上的Python Web框架,专门为通过异步请求处理的快速HTTP响应而创建。

它运行在Python 3.5+上。Sanic支持异步请求处理程序,这使它与Python 3.5的异步/等待函数兼容。这提高了速度,提供了非阻塞功能。

在一个进程和100个连接的基准测试中,Sanic每秒能够处理33,342个请求。

Tornado是一个Python Web框架和异步网络库。它使用非阻塞网络I / O并解决C10k问题(意思是说,如果配置正确,它可以处理10,000多个并发连接)。

这使它成为构建需要高性能和数万并发用户的应用程序的理想工具。

龙卷风的主要特点是:

内置的用户认证支持

实时服务

高品质的性能

基于Python的网页模板语言

非阻塞HTTP客户端

实施第三方认证和授权计划(Google OpenID / OAuth,Facebook登录,雅虎BBAuth,FriendFeed OpenID / OAuth,)

支持翻译和本土化

其他

Dash是一个开源Python框架,用于构建分析型Web应用程序。对于不熟悉Web开发的Python数据科学家来说,这尤其有利。

Dash应用程序是运行并通过HTTP请求与JSON数据包进行通信的Web服务器。他们的前端使用呈现组件

使用Dash开发的应用程序在Web浏览器中呈现,并可以部署到服务器。这也意味着Dash应用程序本质上是跨平台和移动就绪的。

Dash开发人员可以访问底层Flask实例及其所有可配置属性。为了扩展Dash应用程序的功能,开发人员还可以使用一套丰富的

选择一个Python Web框架

正确的框架可能是您开发一个成功项目所需的一切。我们真的希望你在本文中找到了一个有趣的框架。如果您有兴趣探索更多选项。

另外,欢迎私信小编交流 Python 的学习经验哦

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP