标签: web-frameworks

Django vs其他Python Web框架?

我已经尝试了所有存在的Python Web框架,我花了很长时间才意识到没有一个银弹框架,每个框架都有自己的优点和缺点.我开始使用Snakelets并且非常高兴能够在较低的水平上控制几乎所有东西而不用大惊小怪,但后来我发现了TurboGears并且我一直在使用它(1.x).像Catwalk和Web控制台这样的工具对我来说非常宝贵.

但是随着TurboGears 2的出现带来了WSGI的支持,在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的在"以正确的方式做到"之间徘徊,例如,学习WSGI,花费宝贵的时间来编写功能已经存在于Django和其他全栈框架中,而不是使用Django或一些为我做任何事情的高级框架.我能看到的后者的缺点非常明显:

  1. 我在这个过程中没有学到任何东西
  2. 如果我需要做任何更低级别的事情,那将是一种痛苦
  3. 仅使用身份验证的基本站点所需的开销是疯狂的.(IMO)

所以,我想我的问题是,这是更好的选择,还是仅仅是一个意见问题,如果它以最小的麻烦实现我想要的东西(我希望身份验证和CRUD接口,我应该使用Django)我的数据库)?我尝试过Werkzeug,Glashammer和朋友,但AuthKit和Repoze让我害怕,以及设置基本身份验证所涉及的步骤数量.我查看了Pylons,但文档似乎缺乏,并且在引用诸如身份验证或CRUD界面之类的简单功能时,各种wiki页面和文档似乎相互矛盾,对于版本等具有不同的hacks.


感谢S. Lott指出我不够清楚.我的问题是:从长远来看,下列哪一项是值得的,但在短期内并不痛苦(例如某种中间地带,任何人?) - 学习WSGI,或坚持使用"电池包含"框架?如果是后者,我会赞赏一个关于我是否应该再给Django一次尝试,坚持使用TurboGears 1.x,或冒险进入其他框架的建议.

此外,我尝试过CherryPy,但似乎找不到足够好的CRUD应用程序,我可以立即使用它.

python django wsgi web-frameworks turbogears

60
推荐指数
6
解决办法
3万
查看次数

简单的Java Web框架

是否有像sinatra(用于ruby)或web.py(用于python)的简单java Web框架?

java web-frameworks

50
推荐指数
7
解决办法
3万
查看次数

成熟的Clojure Web框架?

成熟的Clojure Web框架目前有哪些选择?我正在寻找某种特征矩阵,告诉我流行的框架支持什么程度,包括:

  • 响应模板(用Clojure或其他标记编写的响应 - 例如像带有Tiles的JSP)
  • HTTP会话
  • REST,自动将URL映射到action-functions和params
  • HTML表单(params可用作map,错误处理,验证)
  • 应用程序流(从Java框架中获知 - 请求处理程序返回最终由呈示器处理的操作标识符)

frameworks clojure web-frameworks

48
推荐指数
3
解决办法
2万
查看次数

将Lift与Play2进行比较

我之前使用过play2和java.它感觉有点像样板文件,特别是如果你使用带有java的akka​​.但这不是框架的错.

昨天我读了"Scala for the greatient",我真的很喜欢这种语言.

现在我查看了两个框架Lift 2.5和Play 2.0.3.我认为电梯有更高的学习曲线,我不能只用电梯做一些事情.这不适合我.从我看到的,Lift有一个非常漂亮和干净的设计.

但对我来说,很难说主要的区别是什么.我认为这两个框架都很棒.

  • Views First方法不允许您在模板中进行编码,而是必须在代码段中进行编码.我非常喜欢这个,因为它看起来更有条理.它还允许您使用普通的html编辑器. (我的经验不多,这只是我的第一印象)

  • 为了安全起见,我认为这不是框架的工作.

  • 无国籍/有状态:很难说主要区别在哪里.我只知道如果你使用网络套接字,播放也有一个状态.

  • 按F5后,两个框架都可以编译.我非常喜欢这个功能.

  • 两个框架都在使用sbt

  • Lift附带授权,但我认为有一个play2 scala插件可以做同样的事情

  • Lift有一个用于mongoDB的ORM映射器.因为我想使用noSQL,这对我来说看起来更干净.(再次没有多少经验) 编辑在play2中有一个用于scala mongodb的ORM映射器https://github.com/leon/play-salat

  • Async - Play 2使用Akka.不知道电梯使用什么,但他们也有类似的东西.

  • 通过CSRF支持提升船舶.Play2有一个CSRF模块,但这为你的代码增加了一个样板.

  • 无状态身份验证似乎存在一些安全漏洞.两个框架都具有状态身份验证.(play2有状态/无状态,举起状态)



  • 每个框架的优势是什么?

scala web-frameworks lift playframework-2.0

47
推荐指数
2
解决办法
3万
查看次数

不使用Java Web框架让生活更美好?

我已经厌倦了每隔一天必须学习另一个Java Web框架.
JSP,Struts,Wicket,JSF,JBoss Seam,Spring MVC仅举几例 - 所有这些无数的框架试图解决同样的问题.然而,它们都没有真正解决根本问题 - 这就是为什么仍然会出现越来越多的新问题.

大多数人在第一印象时看起来非常明亮和闪亮,因为它们简化了做简单的事情.
但是,一旦涉及到实际用例的实现,就会遇到问题.
通常,框架不提供任何帮助,但是通过强制根据框架自己的逻辑和环境实现事物来阻碍一个并限制选项.

简而言之,我在使用框架时会看到以下缺点:

  1. 大多数情况都是陡峭的学习曲线,在开始之前,您首先需要了解一些相当理论的概念,并了解一堆配置文件的含义和位置.
  2. 文档通常或多或少可怕,要么缺少公共可访问的在线参考,无助过时,将不同的不兼容版本或所有这些混淆在一起,并且通常不提供任何有用的示例.
  3. 该框架由数以万计的类组成,这使得仅通过浏览源来实际理解预期用途是不可能的.
  4. 因此,您需要购买一些"21天内用于假人的XYZ"书籍,这些书籍的用户界面很差,因为他们缺少全文搜索并且携带很多.
  5. 要真正使用这个框架中的一个,你需要通过记住适当的类和方法名称来记住框架需要它的方式,通过记住适当的类和方法名称,直到你的头脑充满了你不能用于其他任何东西的愚蠢和无用的信息. .
  6. 有一个很大的开销,减慢你的应用程序性能,并在试图了解真正发生的事情时让你的大脑感到麻木.
  7. 在现实世界中,由于生产力的压力,通常没有时间熟悉新事物.通过这种学习方法的结果,人们总是只寻找完成下一个任务的最快方法,而不是真正理解新工具及其可能性.
  8. 遵循标准的论点允许新项目的人快速入门在我的视图中无效,因为每个项目甚至在同一公司内使用不同的框架(至少在我的情况下).

在我看来,阿尔伯特·爱因斯坦的以下引用非常适合这里:

"我们无法通过使用我们在创建问题时使用的相同思维来解决问题."

回到我早期的PHP编码日,当编码仍然充满乐趣和高效时,我曾经为大多数事情编写自己的框架,只是复制粘贴并将它们从一个项目中采用到下一个项目.
这种方法得到了很好的支持,导致了快速开发,没有任何开销,并且实际上比大多数Java框架更强大的框架,但在单个文件中只有几百行代码加上一些简单的mod_rewrite规则.
这当然不能解决Web开发的所有问题,但它简单,快速,直接.
虽然完美地适应了当前项目的要求,但它也很容易扩展,并且由于零开销而具有非常高的性能.

那么为什么所有那些使用这个框架的麻烦,为什么不抛弃它们并回到根源呢?
当我们明天再次使用新框架启动下一个项目时,我应该对我的老板说些什么?
或者是否有可能真正有所作为的框架?
或者我忽略了一些隐藏的优势?

java web-applications web-frameworks

46
推荐指数
6
解决办法
4756
查看次数

Apache Tapestry和Apache Wicket之间的区别

Apache Wicket(http://wicket.apache.org/)和Apache Tapestry(http://wicket.apache.org/)都是面向组件的Web框架 - 与Apache Foundation的基于行为的框架(如Stripes)相反.两者都允许您使用Java中的组件构建应用程序.它们看起来和我很相似.

这两个框架之间有什么区别?有人有经验吗?特别:

  • 他们的表现如何,国家处理能够定制多少,他们可以无国籍地使用吗?
  • 它们的组件模型有什么区别?
  • 您会选择哪些应用程序?
  • 他们如何与Guice,Spring,JSR 299集成?

编辑:我已经阅读了两者的文档,我已经使用过两者.这些问题不能通过阅读文档来回答,而是根据使用这些问题一段时间的经验,例如如何在无状态模式下使用Wicket用于高性能站点.谢谢.

java wicket tapestry web-frameworks

45
推荐指数
3
解决办法
2万
查看次数

在运行烧瓶应用程序后调用函数的正确方法是什么?

我对如何做一些我认为非常简单的事情感到有些困惑.我有一个简单的应用程序使用Flask.它看起来像这样:

from flask import Flask

app = Flask(__name__)

def _run_on_start(a_string):
    print "doing something important with %s" % a_string

@app.route('/')
def root():
    return 'hello world'

if __name__ == "__main__":
    if len(sys.argv) < 2:
        raise Exception("Must provide domain for application execution.")
    else:
        DOM = sys.argv[1]
        _run_on_start("%s" % DOM)
        app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我发现我的终端输出的是打印语句,_run_on_start而不是其他常用的Flask app调试代码.如果我在app.run之前删除了调用,则输出正常.此外,我发现_run_on_start在启动时重复输出两次,但我不知道它是否是一些奇怪的输出,或者该函数实际上被调用了两次.

我假设这不是在你打电话之前添加函数调用的正确方法app.run.我查看了Flask文档并发现了可以使用的各种装饰器的提及,它允许您在某些请求之前/之后执行一个函数,但我想在运行应用服务器时执行调用.

此外,我意识到,如果我从另一个模块调用此模块,即,当__name__ != "__main__"我不接听我的电话时_run_on_start.

这里有什么正确的方法?在这两种情况下,当我从CL和另一个模块开始?

python web-frameworks werkzeug flask

31
推荐指数
2
解决办法
2万
查看次数

Common-lisp中最好的Web框架?

什么是最好的common-lisp Web框架?

我正在寻找适合开发商业Web应用程序并能够处理类似Stack Overflow的高流量站点的东西.它还应具有内置会话处理和其他类似功能.

web-frameworks common-lisp

29
推荐指数
2
解决办法
2万
查看次数

你在Erlang上使用氮气的经历是什么?

我一直在查看氮计划,它应该是Erlang最成熟的Web开发框架.

Erlang作为一种语言,令人印象深刻.然而,关于氮,我不太热衷于使用Erlang的相当不常见的语法(除非你是PROLOG中的本地语言)来构建UI.

与其他主流 Web框架(如Django或Rails)相比,您对它的体验是什么?

erlang web-frameworks nitrogen

27
推荐指数
2
解决办法
5632
查看次数

有没有ASP.NET for C#web开发的替代品?

最近,我一直在想,我想尝试一些新的想法和一种新的Web应用程序设计方法.我大多习惯使用ASP.NET(.NET 2.0),但我也玩过一些ASP.NET MVC库.虽然两者都很强大而且很有趣,但我真的更喜欢更基本的东西.

那里有类似的东西吗?我想要一个更透明的框架:我希望能够看到请求,将其传递到我想要的地方,以我想要的方式呈现HTML,并发布请求我想要的方式.我可以在ASP.NET中获得所有这些,但我必须非常努力地去挖掘它.我想用一些简单的东西作为一些新框架思想的基础.

那里有类似的东西吗?或者我是否必须完全重新发明所有基本的路由,请求和响应代码以及从中获得一个平台?

c# asp.net web-frameworks

26
推荐指数
3
解决办法
1万
查看次数