“原生”网页Python
我最近在研究web2py这个框架,准备用它做一个业余项目。我年轻的时候学过Python,所以对它有一些了解。现在我主要是做PHP开发,但其实对PHP有点厌烦。
我心里有个疑问:有没有办法在后台用“纯”Python?我说的“纯”就是像PHP那样,不用框架。那样的话,模板是怎么工作的呢?我觉得用缩进和其他东西来处理,感觉有点不太对劲。
不过,我现在在试用web2py,感觉还挺不错的。
3 个回答
如果不使用框架,你就需要用WSGI。这样做的话,你需要写一个叫做application
的函数,像这样:
def application(environment, start_response):
start_response("200 OK", [('Content-Type', 'text/plain')])
return "hello world"
environment
里包含了一些cgi变量和其他信息。通常情况下,application
会调用其他函数,这些函数的调用方式是一样的,这样就形成了一连串的函数,每个函数负责处理请求的某个特定部分。
当然,你需要自己处理模板。语言本身并没有内置这个功能。
把逻辑、内容和展示混在一起,就像PHP最初鼓励的那样,真是个大错误。这完全违背了好的设计原则,其他语言也不应该这样做(其实在PHP里也不应该这样做,幸运的是,PHP的世界正在慢慢摆脱这种做法)。
你应该了解一下模型-视图-控制器(MVC),虽然这不是现实世界设计的最终答案,但它为现代网页开发提供了一个重要的基础,并且在讨论应用布局时,形成了一个共同的语言。
大多数情况下,你应该使用某种形式的网页框架,特别是那些提供模板功能的框架。web2py是个不错的选择。其他流行的框架还有Pylons和Django。
大多数Python网页框架都是非常模块化的。你可以把它们全部用在你的应用里,也可以只用其中的一部分。比如,你可以使用Django的URL调度器,但不使用它的模型/ORM,或者你可以用它的所有功能,除了模板引擎,改用Jinja。这完全取决于你。
你甚至可以写传统的CGI脚本(可以看看CGI模块),同时使用你选择的模板引擎。
你应该开始学习这些东西,找到最适合你的方法。但有一点你绝对不应该做的,就是把Python网页开发当成PHP那样来处理。
其实没有必要这么做 :) 不过如果你真的想的话,可以在 WSGI 的基础上进行开发。
我建议你可以试试像 web.py 这样的微框架,如果你喜欢简单直接的风格。