使用Python开发Web应用程序
我最近在用Python做一些工作,不过都是为了独立的应用程序。我想知道有没有Python的相关版本可以用来做网页开发?
有没有人能推荐一个好的教程或者网站,让我可以学习一些用Python进行网页开发的基础知识?
9 个回答
如果你真的不想深入了解框架——不过我强烈推荐Django或Pylons——那么你还是得走CGI这条路。CGI是一种完全过时的技术,慢得不行,还效率低下。
其实有一种标准的方法来构建Python的网页应用,这个方法叫做WSGI。如果你想从零开始自己做一个网页应用,这绝对是个不错的选择。
不过,如果你刚刚入门,真的应该选择一个框架来使用。
三年后编辑:别用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互动有了清晰的理解后,可以使用一个框架来帮你处理那些繁琐的事情。不过这要看你自己,只是我的建议。
现在大家都提到 Django 了,我也想说几句:我认为在使用 Django 之前,先了解一下不同的组件可能会学到更多东西。对于用 Python 开发网站,通常你需要三个部分:
一个处理 HTTP 的东西(比如说 CherryPy)
如果你需要从数据库获取数据,使用 ORM 会很方便。SQLAlchemy 就是一个很好的 例子。
以上的链接都有很好的教程。对于很多实际应用场景来说,Django 会比这些组件组合更好,因为它能无缝地整合这些功能(还有更多)。如果你需要一个内容管理系统(CMS),Django 是最好的选择,除了 Zope。不过,为了更好地理解整个过程,使用一些松散耦合的程序组合可能会更好,因为 Django 隐藏了很多细节。