9

我知道这有点主观,但是,如果你设身处地为我着想,你会花时间在学习上吗?

我想编写一个网络应用程序,它可以安全地处理数量相对较少的人们的私人数据,几千条几 Kb 的记录,但需要保持安全的东西,地址,电话号码等。我已经完成了几个网络项目在 PHP/MYSQL 中并已经决定,虽然它很方便,但我真的不喜欢 PHP,也不想在其中做另一个大型项目......

因此,我认为我最好学习一些新东西,所以我正在考虑 2 个选项(尽管如果你有建议,我会很乐意招待其他人)。我在决定时遇到了可怕的麻烦。他们看起来都很投入,所以不要只是跳进去,可能会浪费几天的时间来加快速度,让他们两个都做出明智的选择,我想我会来这里征求一些意见。

所以我正在考虑的两个选择是......

PYTHON Web 框架之一- TurboGears 似乎很受好评?优点:在我尝试过的所有语言中,Python 是我最喜欢的。有很多框架可供选择,在过去的几年里,我做了很多非 web python 编码。缺点:有很多选择,所以很难选择!需要运行单个服务器进程?还是 mod_python?我不喜欢的声音。我喜欢的是进程分离和划分的概念,即如果一个用户帐户被盗用,攻击者将无法利用系统的其余部分。我不清楚python解决方案能在多大程度上处理这个问题。

把它写成一个 SEASIDE 应用程序我猜它在一个吱吱作响的应用程序服务器上运行?Adv:据我所知,这将允许对用户进行良好的划分,因为每个人都有自己的小型私有 VM,独立于其他用户的所有系统,从安全性、扩展性和冗余的角度来看,这听起来很棒。Dis:自从 15 年前的 Uni 以来,我没有做过任何 Smalltalk,那时我也从未深入研究过它。我看不到海边或许多使用它的项目的入门级帮助。我怀疑设置服务器以运行它是困难的,原因相同,不是因为它本质上很难,而是因为在线帮助会更少,并且假设你已经对 Sqeak/Smalltalk 相当熟悉了。

那么,人们是怎么想的呢?我能否通过 Python 框架有效地获得我所追求的那种强大的分离和划分?在将用户彼此隔离方面,Seaside 是否和我想的一样好?在安全方面,我可能会变得更好,坚持使用我最熟悉的语言,这样我就不会犯任何 n00b 错误,或者 Seaside 是否值得扩展学习曲线并证明从长远来看更安全、更易于理解和可维护? 归根结底,这不是一个生死攸关的决定,如果我从一个开始然后讨厌它,我总是可以保释,所以请不要让所有的圣言战争开始燃烧任何人!;-)

为这得到的任何回复欢呼,

罗杰:)

4

9 回答 9

10

忘记 mod_python,有WSGI

我会推荐Django。它可以在任何WSGI服务器上运行,有很多可供选择。有用于 Apache的mod_wsgi 、 wsgiref - Python 中包含的参考实现等等Google App Engine也是WSGI,包括 Django。

Django 非常流行,它的社区正在迅速发展。

于 2009-03-30T16:26:44.750 回答
10

免责声明:我真的不喜欢 PHP,Python 很好,但在我的书中并没有接近 Smalltalk。但我是一个有偏见的 Smalltalker。关于海边/吱吱声的一些答案:

问:我猜它在一个吱吱作响的应用服务器上运行?

Seaside 在几个不同的 Smalltalks 中运行(VW、Gemstone、Squeak 等)。Smalltalk 国家并没有真正使用术语“应用服务器”。:)

问:据我所知,这将允许对用户进行良好的划分,因为每个人都有自己的小型私有 VM,独立于其他用户的所有系统,从安全性、扩展性和冗余的角度来看,这听起来很棒。

是的,每个用户都有自己的 WASession,用户看到的所有 UI 组件都是该会话中服务器端的实例。因此,会话之间的状态共享是您必须明确执行的操作,通常是通过 db。

问:自从 15 年前的 Uni 以来,我没有做过任何 Smalltalk,那时我也从未深入研究过它。我看不到海边或许多使用它的项目的入门级帮助。

Smalltalk 很容易上手,Seaside 上有一本免费的在线书籍。

问:我怀疑设置服务器以运行它是困难的,原因相同,不是因为它本身就很难,而是因为在线帮助会更少,并且假设您已经相当熟悉 Sqeak/Smalltalk。

不,不难。:) 其实很琐碎。大量帮助 - Seaside ml、freenode 上的 IRC 等。

问:Seaside 在将用户彼此隔离方面是否和我想的一样好?

我会这么说。

问:在安全方面,我是否会更好,坚持使用我最熟悉的语言,这样我就不会犯任何 n00b 错误,或者 Seaside 是否值得扩展学习曲线并证明在长跑?

支持 Seaside 恕我直言的杀手锏是真正的组件模型。它真的非常适合复杂的 UI 和维护。如果您害怕学习“不同的东西”(但是我猜您甚至不会首先考虑它),那么我会警告您。但如果你不害怕,那么你可能会喜欢它。

此外 - Squeak(或 VW)是一个真正令人敬畏的开发环境 - 调试实时 Seaside 会话,在调试器中更改代码并恢复等。它很震撼。

于 2009-03-30T19:28:25.283 回答
8

我会说看看Django。它是一个 Python 框架,具有独立于托管操作系统的现成身份验证系统,这意味着妥协仅限于被妥协的应用程序(除非对托管 Python 进程的 Web 服务器进行一些利用)。

于 2009-03-30T16:23:23.370 回答
6

我自己也进入了海边,但在很多方面都很难上手,这与可以极快上手的 smalltalk 无关。挑战在于您确实受到保护,无法直接编写 html。

我发现在大多数框架中,当您陷入如何做某事时,总是可以通过使用模板来解决它。您稍后可能会发现此解决方案会导致问题变得清晰,实际上框架中内置了更好的解决方案,但是您能够从该问题继续前进,直到您学会了正确的方法。

Seaside 没有模板,所以你没有那个拐杖。没有任何问题永远困扰着我,但有些问题比我希望的要花更长的时间来解决。另一面是你最终会更快地学习海滨方法,因为你不能作弊。

如果您决定走海边路线,请不要害怕在 squeakfoundation.org 上发布到海边邮件列表。一开始我觉得它很吓人,因为由于流量低,你在那里看不到很多初学者的问题,但人们愿意帮助那里的初学者。

还有一些海边的开发者会定期监控 stackoverflow。祝你好运。

于 2009-03-30T20:47:44.903 回答
5

你看过www.nagare.org吗?

一个专门用于 Web 应用程序而不是网站的框架。

它基于 Seaside 概念,但您使用 Python 进行编程(nagare 部署了一个名为 Stackless Python 的 Python 发行版以使延续工作正常进行)。

像 Seaside 一样,它会自动生成 HTML,但还可以根据需要使用模板。

它最近由http://www.net-ng.com/开源,他们自己在 zope 和 plone 等高质量 Web 框架中提供 Web 应用程序/站点方面拥有多年经验。

我现在正在自己研究它,看看它是否符合我的需求,所以不能告诉你我对它的看法。如果你看,请给你的反馈。

于 2009-04-22T09:59:02.913 回答
4

在考虑 Smalltalk Web 框架时,请同时查看Aida/Web。Aida 具有内置的安全性,包括用户/组/角色管理和强大的访问控制,可以在您的情况下为您提供很多帮助。这样,您可以在一个图像中的用户级别实现足够安全的用户分离。但如果你真的想要,你也可以通过运行许多图像将它们分开。但这会增加维护,如果值得,我会三思而后行。

于 2009-03-30T16:21:45.153 回答
3

我自己在玩 Seaside,发现本教程对于深入了解框架的功能非常宝贵。

于 2009-05-15T15:04:25.660 回答
1

我想你已经总结了很多优点和缺点。Seaside 设置起来并不难(我已经为各种项目安装了两次),但使用它肯定会影响你的工作方式——除了重新学习语言之外,你可能还需要调整很多关于你的工作流程。

它还取决于其他两个因素

  • 如果其他人最终会维护它,那么你会更幸运地找到 Python 程序员
  • 如果您正在做一个高度有状态的网站,Seaside 将击败我见过的任何其他框架。
于 2009-03-30T16:25:41.557 回答
1

现在有一本关于 Seaside 的在线书籍可以完成前面指出的教程

于 2010-07-07T16:55:01.530 回答