中企动力 > 头条 > python3框架

网站性能检测评分

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

python3框架

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服务。

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

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

华行云

关注

这是柠檬班的第171篇文章

最近办公室的开发哥哥,每天都嚣张的很,说让我弄死他。于是我本着善良助人的天性,来学习接口自动化,并准备在他快下班的时候,给他多提几十个bug。嗯,就是这样,对的,没错

开始接口自动化首先,我们要选择一门语言,测试人员的标配,当然是Python3,不要问为什么,简单粗暴,上手快没有基础的同学可以先去学习一下python基础。首推菜鸟教程和廖雪峰接下来我们看一下我们的接口自动化框架的主要构成。嘿嘿嘿

接口自动化框架一共分为6个模块common:公共模块,包括配置和共用的代码source:接口封装的类test_case:存放单元测试用例test_data:存放测试数据(这里用的是Excel)test_report:存放测试报告的地址test_result:存放测试结果的地址

公共类首先开始编写我们的公共类

HTTP类这里封装了2个函数,一个get请求,一个post请求,并以data形式返回测试结果

读取配置文件的类其实就是为了把什么固定的ip地址,端口,数据库连接信息啦放在配置文件里面,并通过类读取调用,实现数据分离,更加灵活

读取Excel的类将测试数据放在Excel中,通过Excel进行数据管理,如下图

存放测试数据然后通过Excel类读取调用,这些就实现了Excel管理测试用例,然后想测什么接口,就直接在Excel里面加就行。想想都爽,成功的走向了,弄死同事的第一步。

这是我们的核心代码

将测试结果写入Excel,并生成HTML测试报告发送到邮箱,这样,我们就可以坐在靠椅上,喝着咖啡,看着代码,然后等着邮件,最后再提上一大堆bug,嗯,大概生活就是如此的美好

最后让我们来执行我们的main函数对,没错,真相只有一个。见证奇迹的时候到了,然后就会生成我们想要的测试报告和测试结果

主函数入口

执行main的日志测试报告呐,一个崭新的测试报告就这么出来了,惊不惊喜,意不意外。就这样我们一起走向弄死同事的不归路。(ps:其实我们还是很相亲相爱的,当然,是他死我活)

测试报告下次有时间会再聊上五毛钱的基于Jenkins持续集成自动化的实践,当然这都是自己瞎捣鼓的,有大神的,请留言,一起共同进步。

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 的学习经验哦

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP