使用Python开发Web应用程序

17 投票
9 回答
23160 浏览
提问于 2025-04-15 11:45

我最近在用Python做一些工作,不过都是为了独立的应用程序。我想知道有没有Python的相关版本可以用来做网页开发?

有没有人能推荐一个好的教程或者网站,让我可以学习一些用Python进行网页开发的基础知识?

9 个回答

3

如果你真的不想深入了解框架——不过我强烈推荐Django或Pylons——那么你还是得走CGI这条路。CGI是一种完全过时的技术,慢得不行,还效率低下。

其实有一种标准的方法来构建Python的网页应用,这个方法叫做WSGI。如果你想从零开始自己做一个网页应用,这绝对是个不错的选择。

不过,如果你刚刚入门,真的应该选择一个框架来使用。

4

三年后编辑:别用mod_python,改用mod_wsgi。Flask和Werkzeug也是不错的框架。了解发生了什么是有用的,但不是必须的。那样做太傻了。

在你对Django的工作原理有一定了解之前,不要去查Django。先用mod_python和它的请求对象写一些基本的应用。我刚开始学习用mod_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互动有了清晰的理解后,可以使用一个框架来帮你处理那些繁琐的事情。不过这要看你自己,只是我的建议。

21

现在大家都提到 Django 了,我也想说几句:我认为在使用 Django 之前,先了解一下不同的组件可能会学到更多东西。对于用 Python 开发网站,通常你需要三个部分:

  1. 一个处理 HTTP 的东西(比如说 CherryPy

  2. 一个模板语言来创建网页。Mako 非常符合 Python 的风格,并且可以和 CherryPy 一起使用,效果很好

  3. 如果你需要从数据库获取数据,使用 ORM 会很方便。SQLAlchemy 就是一个很好的 例子

以上的链接都有很好的教程。对于很多实际应用场景来说,Django 会比这些组件组合更好,因为它能无缝地整合这些功能(还有更多)。如果你需要一个内容管理系统(CMS),Django 是最好的选择,除了 Zope。不过,为了更好地理解整个过程,使用一些松散耦合的程序组合可能会更好,因为 Django 隐藏了很多细节。

撰写回答