【问题标题】:Python for web scripting用于 Web 脚本的 Python
【发布时间】:2010-12-19 09:08:26
【问题描述】:

我刚刚开始使用 Python,到目前为止已经在 IDLE 界面中进行了练习。现在我想用 MAMP 配置 Python,这样我就可以开始创建真正基本的 web 应用程序——在 HTML 中使用 Python,或者反之亦然。 (我假设在 Python 中允许使用 HTML,就像 PHP 一样?如果没有,是否有任何模块/模板引擎呢?)

我需要安装哪些模块才能从本地主机运行 .py?谷歌搜索了一下,似乎有多种方法 - mod_python、FastCGI 等。我应该使用哪一种以及如何使用 MAMP Pro 1.8.2 安装它?

非常感谢

【问题讨论】:

    标签: python html web-applications fastcgi template-engine


    【解决方案1】:

    我认为最简单的入门方法可能是使用 Django 之类的东西。它是一个自上而下的 Web 开发堆栈,可为您提供开发和运行后端服务器所需的一切。在那个世界里事情可能非常简单,除非你真的有需要,否则不需要乱用 mod_python 或 FastCGI。

    这也很好,因为它符合WSGI,这是一个 Python 标准,允许您将不相关的可重用代码插入在一起,以便在需要时向您的 Web 应用程序添加特定功能(例如 on-the-fly gzip compression 或 @ 987654324@认证)。一旦您超出了默认的 Django 堆栈,或者想要更改特定的内容,如果您愿意,您可以沿着这条路走下去。

    这些是帮助您入门的一些建议。如果需要,您还可以查看其他替代框架,例如 TurboGearspaste,但 Django 是一种快速启动和运行的好方法。无论如何,我相信您会喜欢这种体验:WSGI 让您可以使用您在网络上找到的大量 Python 代码来构建网络应用程序。

    [编辑:如果遇到问题,您可能会发现在 stack-overflow 上浏览一些可能的 Django related questions 会很有帮助]

    【讨论】:

    • 但是,呃,我是一个绝对的初学者,所以我想我会从一些非常基础的东西开始,然后转向 Django。你是说 Django 比在 Python 中手动编写 HTML 更容易使用吗?那我一定要看看! :)
    • 绝对:按照我链接的教程进行操作:它会让你在几分钟内运行开箱即用的东西。比必须从上到下理解堆栈要容易得多。而且它的编写方式可以在您需要时为您提供很大的成长空间。
    • 噢!它还不支持 Python 3。 :(
    • Web 领域还没有多少支持 Python 3。 :-( 甚至 WSGI 本身也没有为新版本正确完成。我个人认为在考虑你想使用哪个框架(如果有的话)之前做一些低级工作确实值得。无论你做什么,确保它通过 WSGI 进行移植。
    • 我也推荐 Django——即使你对 Python 不是很熟悉,Django 让一切变得非常简单,它仍然是改进 Python 的一种动手方式。但是,如果您不想这样做,请查看 FastCGI,我过去做过一些 cgi python 脚本,它适用于极小规模的东西。
    【解决方案2】:

    您询问是否允许在 Python 中使用 HTML,这表明您仍然在 PHP 方面考虑太多。与 PHP 不同,Python 的设计初衷不是创建动态网页。相反,它被设计为一种独立的通用编程语言。因此,您将无法将 HTML 放入 Python。有一些模板库可以让你在某种程度上反过来,但这是一个完全不同的问题。

    使用 Django 或 TurboGears 或所有其他 Web 框架,您基本上设置了一个小型独立 Web 服务器(它与框架捆绑在一起,因此您无需执行任何操作),告诉服务器哪个函数应该处理哪个 URL,然后编写这些函数。在最简单的情况下,您指定的每个 URL 都有自己的功能。

    “处理函数”(或 Django 术语中的“视图函数”)接收一个请求对象,其中包含有关刚刚收到的请求的有趣信息。然后它会执行所需的任何处理(例如数据库查询)。最后,它产生一些输出,返回给客户端。获取输出的一种典型方法是将一些数据传递给模板,在该模板中与一些 HTML 一起呈现。

    因此,HTML 是在模板中分隔的(在典型情况下),而不是在 Python 代码中。

    关于 Python 3:我想你会发现世界上绝大多数 Python 开发仍然使用 Python 2.*。正如其他人在这里指出的那样,Python 3 才刚刚问世,大多数好东西还没有可用,你不应该为此烦恼。

    我的建议:准备好 Python 2.6 和 Django 1.1 并投入其中。这很有趣。

    【讨论】:

      【解决方案3】:

      Django 绝对不是最简单的方法。

      检查塔架。 http://pylonshq.com/

      还检查 sqlalchemy 以获取与 sql 相关的内容。很酷的图书馆。

      另一方面,您总是可以从一些非常简单的东西开始,例如用于模板的 mako。 http://www.makotemplates.org/

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 2011-03-14
        • 2011-05-17
        • 2018-08-12
        • 1970-01-01
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多