选择更好的框架

Python Web框架的世界提供了许多选择.一些需要考虑的突出框架是Django,Flask,Bottle,Diesel,Web2py,Pyramid,Falcon,Pecan等,它们都在争夺开发者的心态.像Pyramid,Django,Web2py和Flask这样的框架非常适合他们的优缺点列表;为您的项目选择一个是一个艰难的选择.

Dash完全是为不同的需求而设计的.因此,作为开发人员,您希望将大量选项减少到能够帮助您按时完成项目的选项.

如果我们比较Flask,Pyramid和Django框架,Flask是一个微框架,主要针对具有更简单要求的小型应用程序,而Pyramid和Django都针对更大的应用程序.金字塔在构建时考虑到了灵活性和自由度,因此开发人员可以为项目提供合适的工具.在金字塔的情况下,开发人员可以自由选择数据库,URL结构,模板样式等.但是,Django包含了Web应用程序所需的所有电池,因此我们只需要安装Django并开始工作.

Django附带一个ORM,而Pyramid和Flask将它留给开发人员选择他们希望如何(或如果)存储他们的数据.通常,非Django Web应用程序最常见的ORM是SQLAlchemy,但是,其他选项可以是DjangoDB,MongoDB,LevelDB和SQLite.

作为开发人员,如果我必须为我的项目选择Django和Web2py.我需要了解框架的好处和局限性.所以让我们比较Django和Web2py :

Django

Django社区是一个很大的优势.这实际上意味着开发人员的财富资源将更大.具体来说,这可以归结为 :

  • 文档

  • 开源资源

  • 第三方应用支持

  • 部署支持

  • 有帮助开发人员的IRC频道

Django拥有一个非常庞大的开发团队和文档社区.当我们处理编写复杂的后端时,它是正确的框架,因为它提供了许多第三方应用程序,可以让您自动执行用户逻辑(注册,身份验证),异步任务,API创建,博客等等.

Web2py

Web2py非常适合快速开发简单的Web应用程序或http服务器.以下是web2py的一些优点和局限.

Web2py的好处

以下是Web2py框架的一些好处 :

  • 与Django和Flask相比,Web2py在开发速度和简单性方面是一个潜在的框架.由于Web2py使用基于python的模板语言,这使python开发人员在理解了将模板编写为视图的基础知识后立即开始编写代码.

  • Web2py可以运行python编译代码作为优化,以减少运行时间,并允许您以编译方式分发代码.

Web2py的限制

以下是框架的一些限制:

  • Web2py支持doctests但是它不支持单元测试.现在doctests不是最佳选择,因为它们的范围有限.

  • 生产和开发模式之间没有区别.如果发生异常,则始终生成故障单,您必须导航到故障单以检查错误.这可能对生产服务器有用,但在开发环境中会很困难,因为开发人员确实需要立即查看错误而不是检查票号.

  • Web2py有一个很好的数据库抽象层(DAL),它允许您抽象多种类型的数据库引擎,但它缺乏强大的ORM.如果你正在处理相对较大的模型,你的代码将被所有嵌套的定义和属性分散,这会使事情变得复杂.

  • 我们不能使用标准的python开发没有修改的工具,因为web2py的IDE支持非常差.

Django和Web2py框架是完整的堆栈框架.这意味着它们提供了所需的所有代码 : 从表单生成器到模板化布局和表单验证,让您根据自己的特定需求编写内容.

但是,如果你想要的话,使用像Flask和Pyramid这样的非堆栈框架创建一个功能齐全的网站,您需要自己添加大量的代码和额外的位.这需要大量的技巧和时间.

Dash

Dash完全是为构建仪表板的反应式框架的特定任务而设计的. Dash by Plotly是python开发人员创建交互式Web应用程序的好方法,无需学习Javascript和前端Web开发. Dash建立在Flask,Plotly.js,React和React Js之上.

Dash和其他框架(如上所述)之间没有比较,因为它们属于不同类别的框架.以下是优先于其他交互式仪表板框架(Jupiter Dashboards,matplotlib和其他)的一些原因 :

  • 只需50行代码,您就可以编写一个简单的"hello world"Dash应用程序,因为Dash只需要很少的样板.

  • 整个Dash应用程序都是用python语言,全局最受欢迎的语言.

  • 在您自己的python代码中,您可以绑定短划线,文本输入,滑块和图形等虚拟交互式组件反应性短跑"回调".

  • Dash应用中的复杂用户界面可以有多个输入,多个输出和输入,这取决于其他输入.

  • 同时,多个用户可以使用Dash应用程序.

  • 使用React创建自己的Dash组件,破折号使用React.js来呈现组件并包含一个插件系统.

  • 开发人员或编写者可以编写短划线应用程序由于Dash的Graph组件是交互式的,所以可以点击,悬停或选择图表上的点.

结论

我们可以得出结论,从许多可用的python框架中选择正确的框架完全取决于项目的类型,复杂性,小型或企业级项目,可用的社区支持类型或可用的在线资源,可扩展性,安全性等./p>

上面提到的python框架在他们的课程中是最好的,但有自己的优点和缺点(取决于项目要求).因此,一种框架不适合所有类型的项目.