使用哪个python框架?

时间:2008-10-14 21:35:15

标签: python frameworks web-frameworks

我正在寻找一个适合初学者的框架(在Python和Web开发中)。

我已经发现了Django和web.py. 我认为对我来说最重要的事情之一是良好的文档。

感谢您的帮助, 丹

10 个答案:

答案 0 :(得分:11)

web.py

这非常简单,而且Python'y。一个基本的hello-world web应用程序是..

import web

 urls = (
     '/(.*)', 'hello'
  )

class hello:        
    def GET(self, name):
        i = web.input(times=1)
        if not name: name = 'world'
        for c in range(int(i.times)):
            print 'Hello,', name+'!'

if __name__ == "__main__": web.run(urls, globals())

..就是这样。

我发现Django强迫很多它自己的约定和代码布局,我永远不会记得中间件/快捷方式导入,以及所有其他“魔术”几乎都需要写任何东西。我发现它比Python Web框架更接近Ruby on Rails。

使用web.py,您可以编写一个完整的,功能正常的Web应用程序,而无需使用任何web.py的帮助程序模块 - 您 要做的唯一事情就是import web并设置URL,这是不可避免的。 (示例中的最后一行运行开发Web服务器)

它有很多内容,比如数据库API,表单助手,模板引擎等等,但它并没有强迫它们 - 你可以通过print "Using <b>%s</b>" % (" string formating ".strip())完成所有HTML输出你希望!

哦,虽然我强调了简单性,但web.py是http://reddit.com所写的内容,因此它也被证明非常有能力/可靠。另外,web.py作者的this post非常好地解释了为什么我更喜欢web.py而不是Django

答案 1 :(得分:10)

我认为Django有一些我工作过的项目的最佳文档。这就是我们两年前在Turbogears上选择它的原因,它是我们做出的最佳技术选择。

答案 2 :(得分:3)

Django非常棒。 Guido使用它(在谷歌工作)。这是我发现自己在Python中比在Lua中工作更多的主要原因。

答案 3 :(得分:3)

DanJ,这里列出了所有已知的Python框架:http://wiki.python.org/moin/WebFrameworks

我建议查看DjangoTurbogearsPylons等的维基百科文章。[我曾在web.py上写过一篇文章,但它被删除了:-(他们很好地解释了框架之间的哲学和组件差异。

就个人而言,我非常喜欢TurboGears,因为它基于众所周知的组件,CherryPy(用于Web服务和URL路由),Kid(用于模板)和SQLObject(用于对象关系映射)。我喜欢他们已经抵制了为所有组件“滚动自己”的冲动,我觉得结果非常Pythonic并且很容易上手。

但您应该查看一些代码示例和教程,并确定最适合您的内容。

答案 4 :(得分:1)

您还应该查看具有良好文档的web2py,这是构建wep应用程序的一个非常好的框架。

答案 5 :(得分:1)

您可能需要查看Karrigell。它有多种编程语法选项,例如:纯Python,纯HTML和Python脚本,组合等等。我不知道它的扩展程度如何,因为我已经好几年没用过了它,但是它很适合用网页框架弄湿你的脚。

答案 6 :(得分:1)

回应少数人的回答,我建议Django。原因很简单:

  1. 遵循标准的MVC架构。
  2. 您可以直接从数据库建模中模块化整个应用程序。
  3. 提供大量文档和免费在线示例/项目书籍。
  4. 许多基于Web的开源项目供参考。

答案 7 :(得分:1)

Wekrzeug也值得一提。它不是一个完整的堆栈Web框架。它是一个低级WSGI框架。 (30 Minute Wiki Screencast

答案 8 :(得分:0)

我假设你在谈论一个Web框架。我使用过CherryPy,发现它非常有用。尝试使用每个解码器编写一个简单的解决方案,并查看它与您的编程风格有多大关系。

答案 9 :(得分:0)

我用原始wsgi编写了web应用程序。也许在某些时候推出我自己的图书馆。我不喜欢大型框架等。在学习原始wsgi时我学会了讨厌http。在你意识到上传文件需要多少愚蠢的解析和解释之后,你真的不喜欢它。

由于wsgi,python拥有大量不同质量的框架。如果你想尝试我的方式,我猜你也许想知道werkzeug。当你还不知道如何做的时候它会提供一些东西。它对我来说可能只有太多的“框架”。最后,写得很好的框架应该超过我在wsgi中所写的内容。