当前位置: 首页 > 面试题库 >

Flask vs webapp2(适用于Google App Engine)

甘永春
2023-03-14
问题内容

我正在启动新的Google App Engine应用程序,目前正在考虑两个框架:Flask和webapp2。我对以前的App Engine应用程序使用的内置webapp框架感到非常满意,因此我认为webapp2会更好,并且不会有任何问题。

但是,Flask有很多不错的评论,我真的很喜欢Flask的方法以及到目前为止我在文档中阅读的所有内容,并且我想尝试一下。但是我有点担心Flask会遇到的局限性。

因此,问题是- 你是否知道Flask可能会带入Google App Engine应用程序的任何问题,性能问题,限制(例如,路由系统,内置授权机制等)?我所说的“问题”是指我无法在几行代码(或任何合理数量的代码和工作量)中解决的问题或完全不可能的事情。

还有一个后续问题:尽管我可能会遇到任何问题,但你认为Flask中是否有任何杀手级功能可以打动我,让我使用它?


问题答案:

坚持使用webapp(或其自然发展版本,webapp2)的一大优势在于,你不必为自己选择的框架为现有的SDK处理程序创建自己的版本。

例如,deferred使用webapp处理程序。要在纯Flask视图中使用werkzeug.Request和werkzeug.Response来使用它,你需要为此实现deferred(就像我在这里为tipfy 所做的那样)。

其他处理程序也会发生同样的情况:blobstore(Werkzeug仍然不支持范围请求,因此即使你创建了自己的处理程序,也需要使用WebOb -请参见tipfy.appengine.blobstore),邮件,XMPP等,或将来包含在SDK中的其他内容。

对于使用App Engine创建的库,也是如此,例如ProtoRPC,它基于webapp,并且如果你不想将webapp和你的框架混合使用,则需要一个端口或适配器才能与其他框架一起使用。同一应用中的选择处理程序。

因此,即使你选择其他框架,你也将不得不结束a)在某些特殊情况下使用webapp或b)必须为特定的SDK处理程序或功能创建和维护你的版本(如果要使用它们的话)。

与WebOb相比,我更喜欢Werkzeug,但是在移植和维护可与Tipfy一起使用的SDK处理程序版本超过一年之后,我意识到这是一个失败的原因-长期支持GAE,最好是保持与webapp / WebOb。它使对SDK库的支持变得轻而易举,维护变得更加容易,并且随着新的库和SDK功能的开箱即用,它也更加面向未来,而且大型社区可以使用相同的App Engine工具来受益。



 类似资料:
  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。

  • 我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P

  • 我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 请帮助整理这些例外 问候, KP

  • 我已经看过并尝试了几乎所有关于这个话题的其他帖子,但运气不好。 我使用的是python 3.6,所以我使用的是以下AMI

  • 我有一个受保护的Web API正在运行,我想访问它。在Azure中,应用注册是: 具有Web API租户管理员权限的SPA Web API没有租户管理员权限,因此请求其id的令牌将返回“应用需要访问资源的权限”错误 我正在尝试获取Web API的承载令牌。问题是它不适用于MSAL,但适用于ADAL。 以下是我的“SPA”的ADAL vanilla JS代码: 如果我在“邮递员”中复制令牌并执行请求

  • 关于redash,我有一个问题。这是请求。在上,它工作得很好。查询示例: 但在axios上,它抛出: 网络错误 并在控制台上写: 访问XMLHttpRequest at