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

Django与其他Python Web框架?

慕麒
2023-03-14
问题内容

我已经尝试了每个存在的Python Web框架,花了很长时间我才意识到没有一个灵丹妙药的框架,每个框架都有其优点和缺点。我从Snakelets入手,非常高兴能够将几乎所有内容都控制在较低的水平上,而不必大惊小怪,但是后来我发现了TurboGears,从那时起我一直在使用它(1.x)。Catwalk和Web控制台之类的工具对我来说是无价的。

但是随着TurboGears 2的问世带来了WSGI的支持,并且在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的为“以正确的方式做事”(例如学习WSGI,花费宝贵的时间编写功能)而感到困惑。在Django和其他全栈框架中已经存在,而不是使用Django或一些为我做所有事情的高级框架。我可以看到后者的缺点非常明显:

  1. 在此过程中我什么都没学
  2. 如果我需要做任何低级别的事情,那将是一件痛苦的事情
  3. 仅使用身份验证的基本站点所需的开销是疯狂的。(IMO)
    所以,我想我的问题是,这是更好的选择,还是只是个见解,如果它以最小的麻烦实现了我想要的功能(我希望使用身份验证和CRUD接口,我的数据库)?我尝试了Werkzeug,Glashammer和朋友,但是AuthKit和Repoze吓坏了我,以及设置基本身份验证所需的步骤数。我看了看Pylons,但是似乎缺少文档,并且当引用诸如身份验证或CRUD界面之类的简单功能时,各种Wiki页面和文档似乎彼此矛盾,并且针对版本等使用了不同的技巧。

感谢S. Lott指出我还不够清楚。我的问题是:从长远来看,以下哪项是值得的,但短期内不会痛苦(例如,某种中间立场,有人吗?)-学习WSGI,还是坚持使用“含电池”框架?如果是后者,我将建议我是否应该再次尝试Django,还是坚持使用TurboGears 1.x,还是尝试其他框架。

另外,我尝试了CherryPy,但似乎找不到足够好的CRUD应用程序,因此无法立即使用它


问题答案:

我建议再看看TG2。我认为人们没有注意到自上一版以来取得的一些进步。除了可用的WSGI实用程序堆栈不断增长之外,还有很多TG2特定的项目需要考虑。以下是一些要点:

TurboGears管理系统 -使用声明性配置类可以完全自定义数据库的CRUD接口。它还与Dojo集成在一起,可为你提供无限滚动的表。服务器端验证也是自动的。管理界面使用RESTful网址和HTTP动词,这意味着可以很容易地通过编程连接到行业标准。

CrudRestController / RestController -TurboGears提供了一种结构化的方式来处理控制器中的服务。只需扩展我们的RestController,即可使用标准化的HTTP动词。将Sprox与CrudRestController 结合使用,你可以使用完全可自定义的自动生成的表格将Crud放置在应用程序中的任何位置。TurboGears现在支持MIME类型作为url中的文件扩展名,因此你可以让控制器使用与呈现html相同的界面来呈现.json和.xml(从控制器返回字典)

如果单击链接,你将看到我们用sphinx构建了一组新文档,该文档比过去的文档更广泛。

有了最好的Web服务器,ORM和模板系统(自行选择),就很容易看出TG对于希望快速上手并随着站点增长仍具有可伸缩性的人们有意义的原因。

人们通常认为TurboGears试图达到一个不断变化的目标,但是我们对发布保持一致,这意味着你不必担心为了获得所需的最新功能而费劲费力。面向未来:更多TurboGears扩展将使你的应用程序可以通过轻松的粘贴命令来扩展功能。



 类似资料:
  • 首先要明确一点的是,没有最好,只有最合适。前端框架并不是所谓 注:本文一些数据收集时间为16-12-31 因为大部分教程都是付费的,所以教程数量的多少在侧面反映了框架的市场需求,如果框架冷门用的人不多,那必然不会有人去为其开发教程。

  • 21. 与其他Web框架集成 21.1简介 Spring Web Flow Spring Web Flow (SWF) 旨在成为管理Web应用程序页面流的最佳解决方案。 SWF与Servlet和Portlet环境中的Spring MVC和JSF等现有框架集成。 如果您有一个业务流程(或流程)将受益于会话模型而不是纯粹的请求模型,则SWF可能是解决方案。 SWF允许您将逻辑页面流作为在不同情况下可重

  • 问题内容: 我想序列化一个模型,但想包含一个附加字段,该字段要求在要序列化的模型实例上进行一些数据库查找: 什么是正确的方法?我看到你可以将额外的“上下文”传递给序列化程序,是在上下文字典中传递附加字段的正确答案吗?使用这种方法,获取我需要的字段的逻辑不会与序列化程序定义完全独立,这是理想的,因为每个序列化的实例都需要。在DRF序列化器文档的其他地方,它表示 “额外字段可以对应于模型上的任何属性或

  • Python Web Project 试图增强 Python 使之更适合用于 Web 开发。

  • 问题内容: 我想在其中自动创建的ManyToMany联接表中存储一些其他信息。我将如何在Django中做到这一点? 就我而言,我有两个表:“雇员”和“项目”。我要存储的是每个项目中每个员工每小时工作所获得的收入,因为这些价值并不相同。那么,我该怎么做呢? 我想到的是,不是使用方法“ ManyToManyField”,而是显式创建了一个第三类/表来存储这些新信息,并使用“ ForeignKey”方法

  • 这个页面无疑是最难编写的,但我们认为它也是非常重要的。或许你曾遇到了一些问题并且已经用其他的框架解决了。你来这里的目的是看看 Vue 是否有更好的解决方案。这也是我们在此想要回答的。 客观来说,作为核心团队成员,显然我们会更偏爱 Vue,认为对于某些问题来讲用 Vue 解决会更好。如果没有这点信念,我们也就不会整天为此忙活了。但是在此,我们想尽可能地公平和准确地来描述一切。其他的框架也有显著的优点