困境:我应该学习Seaside还是Python框架?

时间:2009-03-30 16:11:15

标签: python frameworks seaside

我知道这有点主观但是,如果你把自己放在我的鞋子里你会花时间学习吗?

我想写一个网络应用程序,安全地处理相对适度数量的人民私人数据,几千KB的记录,但需要保持安全,地址,电话号码等等。我已经完成了PHP / MYSQL中的几个Web项目已经决定了,虽然我真的不喜欢PHP并且不想在其中做另一个大型项目...

因此,我认为我最好学习一些新的东西,所以我正在考虑两种选择(尽管如果你有建议,我会愉快地招待其他人)。我决定遇到很麻烦。他们看起来都非常参与,而不仅仅是跳进去,可能会浪费几天时间来加快他们两个人的速度以做出明智的选择我以为我会来这里并画出一些意见。

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

其中一个PYTHON Web框架 - TurboGears似乎受到好评? 优势:在我尝试过的所有语言中,Python是我最喜欢的。有很多框架可供选择,过去几年我做了很多非网络python编码。 缺点:有可供选择的负载因此很难选择!需要运行单服务器进程吗?还是mod_python?我不喜欢的声音。我喜欢的是进程分离和分区的概念,即如果一个用户帐户被泄露,它就会使攻击者无法利用系统的其余部分。我不清楚python解决方案将在多大程度上处理它。

将其编写为SEASIDE应用我想在吱吱作响的应用服务器上运行? 高级:据我所知,它将允许用户进行良好的划分,因为每个用户都拥有自己的小型私有虚拟机,独立于其他用户,从安全性,扩展和冗余的角度来看,听起来很棒。 Dis:自从15年前的Uni以来我没有做过任何Smalltalk,我从来没有深入挖掘它。我没有看到海边或许多项目使用它的入门级帮助。我怀疑设置一台服务器是因为同样的原因很难运行它,即不是因为它本来就很难但只是因为在网上会有较少的帮助而且假设你已经相当不满Sqeak / Smalltalk。

那么,人们怎么想?我是否能够有效地获得我在Python框架之后的强大分离和区分化?就使彼此隔离用户而言,Seaside和我想的一样好吗?可能我会变得更好,安全明智,坚持我最熟悉的语言,所以我不会犯任何n00b错误,或者Seaside值得扩展学习曲线并证明从长远来看更安全,易懂和可维护?在一天结束时,这不是生死攸关的决定,如果我从一开始然后讨厌它,我就可以随时保释,所以没有人得到所有的圣语战争,并开始燃烧任何人! ; - )

为此获得的任何回复干杯,

罗杰:)

9 个答案:

答案 0 :(得分:10)

忘掉mod_python,有WSGI

我建议Django。它可以在任何WSGI服务器上运行,有很多可供选择。 Apache有mod_wsgiwsgiref - Python和many more中包含参考实现。另外Google App Engine是WSGI,包括Django。

Django非常受欢迎,它的社区正在快速增长。

答案 1 :(得分:10)

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

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

Seaside以几种不同的小号(大众,宝石,吱吱声等)运行。术语“app server”并未真正用于Smalltalk国家/地区。 :)

问:从我所听到的情况来看,它将允许用户进行良好的划分,因为每个用户都拥有自己的小型私有虚拟机,独立于其他用户,从安全性,扩展和冗余的角度来看,这听起来很棒。

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

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

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

问:我怀疑设置一台服务器是因为同样的原因很难运行它,即不是因为它本来就很难但只是因为在网上会有较少的帮助而且假设你已经相当不满Sqeak / Smalltalk。< / p>

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

问:在使用户彼此隔离方面,海边是否与我想的一样好?

我会这么说。

问:我可能会变得更好,安全明智,坚持我最熟悉的语言,所以我不会犯任何n00b错误,或者Seaside值得扩大学习曲线并证明更安全,更易于理解和从长远来看是否可以维持?

支持Seaside IMHO的杀手论证是真正的组件模型。它确实非常适合复杂的UI和维护。如果你害怕学习“不同的东西”(但是我想你不会在第一时间考虑它)那么我会警告你。但如果你不害怕,那么你可能会喜欢它。

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

答案 2 :(得分:8)

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

答案 3 :(得分:6)

我自己一直在海边,但在很多方面它很难开始,这与可以非常快速地拾取的smalltalk无关。挑战在于您确实无法直接编写html。

我发现在大多数框架中,当你遇到如何做某事时,总会有一个解决方法是使用模板来解决它。您可能稍后发现此解决方案会导致问题的清晰度,并且事实上在框架中内置了更好的解决方案,但您可以继续解决该问题,直到您学会了正确的方法。

Seaside没有模板,所以你没有得到那个拐杖。没有任何问题永久地困扰我,但有些人花了我更长的时间来解决,而不是我想要的。另一方面,你最终会更快地学习海边方法,因为你不能作弊。

如果您决定前往海边路线,请不要害怕发布到squeakfoundation.org的海边邮件列表。起初我觉得它很吓人,因为由于交通量低而你没有看到很多初学者的问题,但人们愿意帮助那里的初学者。

此外,还有少数海边开发人员定期监控堆栈溢出。祝你好运。

答案 4 :(得分:5)

您是否看过 www.nagare.org

特别适用于网络应用而非网站的框架。

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

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

最近由http://www.net-ng.com/开源,他们自己在zope和plone等优质网页框架中提供网络应用/网站方面拥有多年经验。

我现在正在研究它是否符合我的需求,所以无法告诉你我在野外的想法。如果您看一下,请提供反馈。

答案 5 :(得分:4)

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

答案 6 :(得分:3)

我自己也在与Seaside玩弄,发现this tutorial对于深入了解框架的功能非常宝贵。

答案 7 :(得分:1)

我认为你几乎总结了利弊。 Seaside不是 很难设置(我已经为各种项目安装了两次)但使用它肯定会影响你的工作方式 - 除了重新学习你可能会使用的语言必须调整很多关于工作流程的假设。

它还取决于另外两个因素

  • 如果其他人最终会维护它,那么找到python程序员会有更好的运气
  • 如果你正在建立一个非常有状态的网站,那么Seaside将会打破我见过的任何其他框架。

答案 8 :(得分:1)