什么语言(Java或Python)+;中型web项目的框架?

什么语言(Java或Python)+;中型web项目的框架?,java,python,google-app-engine,web-applications,stripes,Java,Python,Google App Engine,Web Applications,Stripes,我计划开始一个中型的网络项目,你会推荐什么语言+框架? 我懂Java和Python。我在找一些简单的东西 应用引擎是一个好的选择吗?我喜欢总体上的简单性和免费托管,但我担心数据存储(要使其与标准SQL解决方案一样快有多困难?+我需要全文搜索+我需要通过几个参数过滤对象) 带条纹的Java呢?除了条纹之外,我是否应该使用另一个框架(例如用于数据库) 更新: 感谢您的建议,我最终决定将Django与Eclipse/PyDev一起用作IDE。 Python/Django简单而优雅,它被广泛使用,并且有

我计划开始一个中型的网络项目,你会推荐什么语言+框架? 我懂Java和Python。我在找一些简单的东西

应用引擎是一个好的选择吗?我喜欢总体上的简单性和免费托管,但我担心数据存储(要使其与标准SQL解决方案一样快有多困难?+我需要全文搜索+我需要通过几个参数过滤对象)

带条纹的Java呢?除了条纹之外,我是否应该使用另一个框架(例如用于数据库)

更新:
感谢您的建议,我最终决定将Django与Eclipse/PyDev一起用作IDE。
Python/Django简单而优雅,它被广泛使用,并且有大量的文档。一个小缺点是,也许我必须买一个VPS,但将项目移植到App Engine并不难,它在某种程度上是免费的。

既然你提到了python,我建议你研究一下。您可能需要更仔细地寻找托管选项,但是…

我已经对应用程序引擎进行了一些调整,到目前为止,数据存储非常快速。。。与SQL相比,有一点学习曲线,但我没有遇到真正的问题。我不确定全文搜索,但是过滤很简单,你只需要一次运行一个过滤器

class DBModel(db.Model):
    field1 = db.StringProperty()
    field2 = db.StringProperty()
    field3 = db.IntegerProperty()

GQLObj = DBModel.all().filter('field1 =', 'Foo')
GQLObj = GQLObj.filter('field2 =', 'Bar')

至于托管,我不确定你是否有选择,我知道你可以在谷歌注册你自己的域名。

我认为数据存储不是问题。许多人会立刻拒绝它,因为他们想要一个标准的关系数据库;如果你愿意考虑一个数据存储一般,那么我怀疑你会有任何问题与GAE数据存储。就我个人而言,我非常喜欢它

可能会让你绊倒的是操作限制。例如,您知道HTTP请求必须在10秒内完成吗

如果你通过一个项目获得了50%的回报,然后发现你正在使用的一个web服务有时需要15秒的响应时间,该怎么办?现在你是土司了。你不能为了提高限额或诸如此类的事情而额外付费

所以,我的观点是,你必须非常小心地接触GAE。在开始使用之前,了解这些限制并确保它们不会成为问题

应用引擎是一个好的选择吗?我喜欢总体上的简单性和免费托管,但我担心数据存储(要使其与标准SQL解决方案一样快有多困难?+我需要全文搜索+我需要通过几个参数过滤对象)

应用程序引擎很好。它支持Pyhton或Java(有一些),它为小的需求提供免费托管(很少,至少对Java是这样)。但我并不期望与专用服务器有完全相同的性能,云是关于可伸缩性,而不是性能(你不会总是在一次点击中获得最快的响应时间;然而,GAE可以在你的服务器着火时毫无问题地处理数以百万计的并发点击)。但是这种可伸缩性不是没有成本的,如果您不需要它,那么开发权衡可能会带来很多麻烦。还要注意的是,它是开箱即用的(多么讽刺),您将不得不使用额外的工具

带条纹的Java呢?我是否应该使用条纹以外的其他框架(例如,用于数据库)

我非常喜欢条纹。我喜欢它的约定胜过配置方法,它是一个非常优雅和简单的框架(但仍然强大)。绝对不是个坏选择。对于持久性,如果您选择GAE,则必须使用JPA或JDO。如果你不这样做,那就由你决定了(尽管我会选择JPA)

另见

    • 生活中的许多事情都取决于你的目标是什么。如果您打算学习在企业环境中使用的web框架,那么请选择Java解决方案。如果没有,就不要。Python当然更优雅,而且在几乎所有方面都更有趣


      至于使用哪种框架,
      django
      拥有最多的关注点,这里提出的大量问题就证明了这一点。我的理解是它也相当不错。不过,它最适合CMS类网站——至少这是它的来源和优化目标。您还可以看看其中一个更简单、更灵活的工具,例如相对较新的
      flask
      。所有这些都是令人愉快的,尽管它们可能并不都具有AppEngine上的所有功能。

      这取决于你的个性。这个问题没有正确答案,就像“我应该开什么样的车”没有正确答案一样

      如果你很有艺术感并且相信代码应该是漂亮的,那么就使用Rails

      如果你是一个真正的黑客类型,我想你会发现像Rails或Django这样的完整堆栈框架并不令人满意。这些框架是“固执己见”的软件,这意味着您必须真正接受作者的愿景,才能获得最高的生产率


      Python世界中web开发的奇妙之处在于有几个很棒的最小框架。我用过几个,包括web.py、GAE的webapp和cherrypy。这些框架就像“这是一个请求,给我一个字符串来提供服务。”它是原始的。不过,不要认为你会陷入Python连接字符串的困境,上帝不会的。还有几个优秀的Python模板库。我个人可以推荐Cheetah,但Mako看起来也不错。

      Google App Engine+GWT和您在开发web应用程序方面的强大组合。数据存储相当快,到目前为止,它对我来说做得非常好

      在我的项目中,我不得不对我的数据库模型进行大量的重新设计,因为它是为传统的关系数据库而设计的,而有些事情在数据存储中(直接)是不可能的

      GWT有一个相当温和的学习曲线,但它能很好地完成工作。gui代码非常容易入门,但它是异步的