2009-05-21 169 views
17

我一直在python中做一些工作,但那都是针对独立应用程序的。我很想知道python的任何分支是否支持web开发?使用python开发web应用程序

会有人还建议一个很好的教程或网站,我可以从哪里拿起一些使用python的web开发的基础知识?

+3

如果我听到DJango或TurboGears或其他什么的话......我会......做一些疯狂的事情? – 2009-05-21 22:26:41

+5

@Aiden ...然后我建议远离python web应用程序的任何讨论,因为*不*谈论web开发中的主要框架是“一些疯狂的东西”。 – 2009-05-22 13:23:54

+6

@Aaron,评论很幽默。如果你想要的话,我有一些空余的。 – 2009-05-22 17:48:19

回答

21

现在大家都说了Django,我可以补充我的两分钱:我会争辩说,在使用Django之前,您可能会首先查看不同的组件。对于Web开发与Python,你经常要3个组成部分:

  1. 一些需要照顾的HTTP东西 (例如 CherryPy

  2. 一个模板语言 创建自己的网页。 Mako 非常pythonic和works与Cherrpy。

  3. 如果您从 数据库获取数据,则ORM会派上用场。 SQLAlchemy 将是一个example

以上所有链接都有很好的教程。对于许多现实世界的用例,Django将比这样的堆栈成为更好的解决方案,因为它无缝地集成了这个功能(以及更多)。如果你需要一个CMS,Django是Zope最好的选择。尽管如此,为了更好地掌握正在发生的事情,一堆松散耦合的程序可能会更好。 Django隐藏了很多细节。

0

查找Django。

0

Python可以用于Web开发,但是没有特殊的语言扩展或任何可以处理所有HTML代码或像PHP一样工作的语言。

它几乎贯穿于Web服务器(CGI,mod_python等)上的某种解释器。

我建议您调查Python Web Application Frameworks或如何编写Python CGI scripts

0

这里有quite a few python框架,但我唯一使用的是Django,我非常喜欢它。

如果你有几个小时,做tutorial,我答应你,你会喜欢它:)

4

在3年后编辑:不要使用mod_python的,使用mod_wsgi的。 Flask和Werkzeug也是很好的框架。需要知道发生了什么是有用的,但这不是必需的。那会很愚蠢。

直到你对Django代表你做的事情有一个很好的把握之前,不要查找Django。为你。使用mod_python和它的请求对象编写一些基本的应用程序。我刚刚开始学习使用mod_python进行网络开发的Python,这非常棒。

mod_python还在site-packages/mod_python/publisher.py中使用调度程序。通过这个来看看如何以简单的方式处理请求。

你可能需要在你的Apache配置文件中添加一些配置来启动并运行mod_python,但mod_python网站对它进行了很好的解释。

<Directory /path/to/python/files> 
    AddHandler mod_python .py 
    PythonHandler mod_python.publisher 
    PythonDebug On 
</Directory> 

而你不在!

使用(如一个愚蠢基本例子):

def foo(req): 
    req.write("Hello World") 

/path/to/python/files/bar.py假设/path/to是你的站点根目录。

然后你就可以做

http://www.mysite.com/python/files/bar/foo 

看到的 “Hello World”。此外,一些我绊倒了是调度器采用了一个跛脚的方法来制定出内容类型,如此给力HTML使用:

req.content_type = 'text/html' 

好运

之后,你有一个好关于Python如何与mod_python和Apache进行交互的想法,然后使用一个框架为你做所有无聊的事情。尽管如此,只是我的推荐

0

正如其他人所说,其中一个更突出的蟒蛇“分支”,你称他们将是Django。这是一个相当强大的框架,可以让您快速安全地构建Web应用程序。首先看看their overview,它提供了一些有关Django作为框架的信息。

通过their tutorial去了解了很多关于着名的Model-View-Controler设计模式以及它如何用于web开发环境的知识。我发现这是一个很好的方式,可以开始编写一个可以改进它的工作和学习的应用程序。

3

如果你真的不想深入研究框架 - 而且你应该,我衷心推荐Django或Pylons,那么仍然需要走上CGI的道路。这是一个完全过时的技术,更不用说慢速和低效了。

There is这是一种构建Python Web应用程序的标准方式,它被称为WSGI。如果你想从头开始自己的网络应用程序,这是绝对要走的路。

这就是说,如果你刚刚开始,你真的应该去一个框架。

1

Web开发有几种选择。根据我的经验,您的选择将再次取决于您的应用程序。我在制作中使用了djangoweb.py,我即将部署基于pylons的应用。

Django隐藏了很多选择(自带ORM和模板)。该文件是广泛的,写得很好。 django有许多可重复使用的应用程序,但您可能会投入一点时间来无缝集成它们。有一件事mentioned on djangocon 08是事实,在django中有很酷的东西,在非django项目中不能轻松地访问 。

web.py它的原始朴素给我留下了深刻的印象。在我知道之前,我写了一个小应用程序(78 lines quasi-wiki)。

pylons感觉就像在两者中间。我可以使用sqlalchemyjinja,总而言之,这是一个愉快的经历。