2

我正在阅读我正在做的一个爱好项目的 web2py 框架。我年轻的时候学会了如何用 Python 编程,所以我确实掌握了它。现在我更像是一个 PHP 开发人员,但有点讨厌它。

我只是有这个疑问:有没有办法在后端使用“Vanilla”python?我的意思是像 PHP 一样的香草,没有框架。模板如何以这种方式工作?我的意思是,缩进和一切都没有抓住重点。

无论如何,我正在尝试 web2py 并且非常喜欢它。

4

3 回答 3

3

PHP 天真地鼓励逻辑、内容和表示的混合是可憎的。它与良好的设计实践截然相反,不应该被导入其他语言(它甚至不应该在 PHP 中使用,幸运的是,整个 PHP 世界都在缓慢地远离它)。

您应该了解模型-视图-控制器 (MVC),它虽然不是关于良好现实世界设计的最终决定,但它构成了现代 Web 开发实践的重要基础,并作为共同点,或一种通用语,在关于应用程序布局的讨论。

大多数时候,您应该使用某种形式的 Web 框架,尤其是提供模板的框架。web2py 不是一个糟糕的选择。其他流行的框架包括PylonsDjango

大多数 Python Web 框架都是非常模块化的。您可以将它们全部用于应用程序中的所有内容,或者只是零碎的。例如,您可能使用 Django 的 URL 调度程序,但不使用它的模型/ORM,或者您可能使用其中的所有内容,除了它的模板引擎,例如Jinja。由你决定。

您甚至可以编写传统的 CGI 脚本(查看CGI 模块),同时仍然使用您选择的模板引擎。

您应该开始了解所有这些事情并找到最适合您的方法。但是您不应该做的一件事尝试将 Python Web 开发视为 PHP。

于 2010-08-08T09:53:39.550 回答
2

没有理由这样做 :) 但是如果你坚持你可以写在WSGI之上

如果你喜欢香草风格,我建议你可以尝试一个微框架,比如 web.py

于 2010-08-08T09:43:11.210 回答
2

没有框架,你使用 WSGI。为此,您可以编写application如下函数:

def application(environment, start_response):
    start_response("200 OK", [('Content-Type', 'text/plain')])
    return "hello world"

environment包含 cgi 变量和其他东西。通常情况下,应用程序将调用具有相同调用签名的其他函数,并且您会得到一个函数链,每个函数都处理处理请求的特定方面。

您当然要负责处理自己的模板。语言中没有任何关于它的内容。

于 2010-08-08T09:49:23.477 回答