当前位置: 首页 > 科技观察

现代开发者必备:5个更流畅、更流行的PythonWeb框架

时间:2023-03-18 14:54:08 科技观察

如今,有许多PythonWeb框架可供选择,可以帮助您更快、更轻松地创建Web应用程序。本文将介绍一些更现代和广泛使用的Web框架。1.FastAPIFastAPI致力于轻量级和快速。我非常喜欢它。它的开发速度和简单性令人欣喜。这对端点特别有用,因为它们通常除了逻辑之外没有太多内容,而且很可能不需要Django或TurboGears等工具提供的所有废话来创建。FastAPI也有很好的文档,使它易于学习。FastAPI中的“快”代表了开发API所需要的速度以及这些API返回的速度。与其他Web框架类似,它也基于API创建的开放标准,您可以在一个方便的包中获得传输数据所需的所有工具。在语法方面,FastAPI采用非常类似于flass的方法来创建端点。fromfastapiimportFastAPIapp=FastAPI()@app.get("/")asyncdefroot():return{"message":"HelloWorld"}2.TornadoTornado不仅是一个优秀的web框架,还是一个异步网络库,这使得Tornado能够为数千个打开的连接提供服务。Tornado使用非阻塞网络流量进出,使其适用于需要大型和可扩展的解决方案。事实上,Tornado与大多数其他PythonWeb框架有很大不同,因为它不在WSGI上运行。虽然这意味着您在选择Web服务器时可能会受到一些限制,但Tornado提供了可以立即启动和运行的预打包服务器。虽然我喜欢Tornado,但应该注意的是,我在尝试使用NGINX部署它时确实遇到了很多错误。而且在某些情况下,让NGINX路由到正确的位置并不是一件开心的事。我也遇到过GenieforJulia,不知道是什么原因造成的,但如果使用Tornado,最好设置Apache服务器,而不是NGINX服务器。在语法方面,Tornado采用非常类似于TurboGears的路由方法。使用Tornado时,通常构建类来处理这些路由上的响应,而不是将逻辑放在路由中,看看这个例子:importtornado.ioloopimporttornado.webclassMainHandler(tornado.web.RequestHandler):defget(self):self.write("Hello,world")defmake_app():returntornado.web.Application([(r"/",MainHandler),])if__name__=="__main__":app=make_app()app.listen(8888)龙卷风.ioloop.IOLoop.current().start()3.Quart别被Quart标志搞糊涂了,它和Flash模块的关系比Bottle模块更密切。Quart本质上是将两个Web框架组合到一个模块中:Asyncio和Flask。这是一件了不起的事情,两者的结合堪称完美!与Flask一样,Quart是轻量级的,但也包含完整的异步功能列表。我也非常喜欢Quart,它感觉像是一个稍微增强的Flask,在不牺牲速度或易用性的情况下添加了更多功能。有趣的是,Quart文档实际上建议您访问Flask文档,我认为这说明了它的分叉性质。如果你想要一个异步Flask,Quart很棒。fromquartimportQuartapp=Quart(__name__)@app.route('/')asyncdefhello():return'hello'app.run()4.BlackSheep“BlackSheep”的灵感来自于ASP.NET和Flask等伟大的工具,可以使用轻松创建基于事件的Web应用程序。我真的不明白为什么它被称为“BlackSheep”,这个框架背后的语法和方法与Flask几乎相同。fromdatetimeimportdatetimefromblacksheep.serverimportApplicationfromblacksheep.server.responsesimporttextapp=Application()@app.route('/')asyncdefhome(request):returntext(f'Hello,World!{datetime.utcnow().isoformat()}')与Quart相同,BlackSheep还提供了用于在Web上同步和创建非阻塞端点的出色工具。总的来说,这是一个非常有用的框架,但与Quart非常相似。所以如果你使用一个,你肯定会同时使用这两个框架。5.PyramidPyramid是我非常喜欢使用的网络框架之一。虽然Pyramid坚持轻量级的理念,并提供非常简单的方法来使用最少的代码快速构建端点,但它还包括您可能需要的所有功能。Pyramid最受赞誉的一件事是它的可扩展性。Pyramid可以是基本的也可以是复杂的,数据科学家会喜欢它,他们可能希望在未来扩展他们的端点。在句法上,Pyramid和Tornado大致相同。它始终遵循面向对象的范例。fromwsgiref.simple_serverimportmake_serverfrompyramid.configimportConfiguratorfrompyramid.responseimportResponsedefhello_world(request):returnResponse('HelloWorld!')if__name__=='__main__':withConfigurator()asconfig:config.add_route('hello','/')config.add_ld(hello_ro_name='hello')app=config.make_wsgi_app()server=make_server('0.0.0.0',6543,app)server.serve_forever()如今,有更多现代且广泛使用的Web框架可以帮助您部署新端点。它们各有优势,但如果让我选择,我可能会选择FastAPI。FastAPI简单、轻量级,一个字就是快。当然,这并不是说FastAPI在任何情况下都是最佳选择。最好根据具体情况决定哪些功能最适合您的需求,然后再进行选择,而不是依赖主观意见。如果您有足够的存储空间,所有这些相框都值得一试。如果您想将体验提升到一个新的水平,下一步是对请求响应运行一些速度测试,看看哪个是最好的。