0

不是来自 MVC 背景,而是纯粹使用 php,最大的挑战之一是掌握框架和 MVC 意识形态。虽然我确信许多人坚持将 MCV 作为推送代码的标准方式,但我缺乏对框架的基本介绍,而且虽然它们上手似乎也很乏味,但我的目标纯粹是在 html 文档中编写一些 Python 代码。

乍一看,Mako 似乎是解决问题的方法,它允许我将 Python 代码写入 html,但乍一看,它似乎需要更多的工作,而不仅仅是“那个”。

我在任何地方都找不到答案是“如何从 Mako 开始”的整个方面。

看看 Mako 网站,出现了这样的情况:

<%inherit file="base.html"/>
<%
rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
% for row in rows:
    ${makerow(row)}
% endfor
</table>

<%def name="makerow(row)">
<tr>
% for name in row:
    <td>${name}</td>\
% endfor
</tr>
</%def>

我再次看到整个模板意识形态 (yuk) 出现了,但我只想将 Python 代码写入我的 html 中。所以我的一些问题是:

  • 安装 Mako 后,我可以开始将 Python 代码放入 HTML 中吗?
  • 如果不是,那么我假设我需要将上面的示例代码放入一个 .py 文件并将 base.html 放在同一目录中?还是我将 .py 文件放在其他地方?
  • 在我在 html 文件中包含对 .py 文件(或 .mako 文件或其他任何名称)的类似调用的意义上,这是否会像 CSS 一样工作。
  • 既然听起来很框架,我是否需要将 html 文件和 .py/.mako 放在同一目录中,还是必须将它们分开?
  • 编辑:我不妨问我是否可以调用我的扩展名 .psp(即使它不是 mod_python)。

我知道很多人会说这很愚蠢,并且有更好的方法可以做到这一点,我犯了一个大错误。但显然没有菜鸟教程更详细地解释了这一点,因此按照我认为合适的方式去做,即。将 Python 代码放在一个文件中并完成它。

我也查看了这个 mod_python,但由于它似乎是一个旧的解决方案,我实际上想跳过那个。但是,我希望有一个“新”的解决方案可以将 Python 嵌入 HTML。

PS。我知道所有的框架布道者都会让我兴奋,但目的不是争论如何编写代码。由于在 Python、Django 或 Makos 网站上以及 Pylons、Pyramid 等网站上都找不到新手/分步教程,因此必须假设任何想要这样做的人都知道他们的框架实现方法。但我不这样做,所以我只想将 Python 代码放入 HTML 中,而不是花费/浪费时间学习 Python 已经应该首先完美解决的东西。

聚苯乙烯。菜鸟,我的意思是我很想知道诸如此类的基础知识。将此代码放入此类文件中,然后将该文件放在那里。然后拿走这个文件并这样做。我只是在任何地方都找不到这个。这就像一个公开的秘密......

4

1 回答 1

2

首先,要了解与 PHP 不同——它是一种专门用于Web 开发的定制开发语言,Python 是一种通用编程语言。使用 Python,您可以开发 Windows 应用程序、Mac 应用程序、服务器端脚本、移动应用程序、服务器、网络客户端——通用编程允许您做的所有事情。就像 Java 或 C# 一样。

因此,有多种方法可以在 Python 中进行 Web 开发。认为“PHP 是 Web 开发”是错误的,并且认为“Python Web 开发将像 PHP Web 开发一样”也是错误的。

最后,请记住,由于 PHP 专为 Web 开发而设计,它“隐藏”了许多杂乱无章的细节,这些细节需要编写代码,这些代码需要位于 Web 服务器后面并以严格的格式处理请求和返回响应。

要使用 Python 进行 Web 开发,您首先需要学习 Python。这与 PHP 不同。你在学习 PHP 时学习 Web 开发(因为这是它的主要目的)。一旦你学会了 Python,你就可以开发各种应用程序;许多 Python 开发人员并不为 Web 开发。

由于在 Python、Django 或 Makos 网站以及 Pylons、Pyramid 等网站上都找不到新手/分步教程,因此必须假设任何想要这样做的人都知道他们的框架实现方法。

Mako 是一种模板语言(如 Smarty)。“独立”使用它是没有意义的,就像没有 PHP 支持 Smarty 一样。

所有 Web 框架都有初学者指南。有些比其他更好。Django 拥有最好的文档之一。从这里开始。要使用任何框架,您需要知道它们公开的方法。就像你需要知道mysql_*PHP 与 MySQL 交互的方法一样。

你剩下的问题源于 Python 不像 PHP。因此,您对 PHP 的期望是在 Python 生态系统中找不到的。

于 2012-10-05T18:00:07.340 回答