Python和Web开发| Mako - 很多问题

时间:2012-10-05 17:43:19

标签: python django python-2.7 web-deployment mako

不是来自MVC背景,而只是纯粹使用php,最大的挑战之一是掌握框架和MVC意识形态。虽然我确信很多人都坚持使用MCV作为推送代码的标准方法,但我缺乏对框架的基本介绍,虽然它们看起来看起来相当繁琐,但我的目标纯粹是将一些Python代码编写到html文档中。

乍一看,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文件放在其他地方?
  • 这会像CSS一样工作,因为我在html文件中包含了对.py文件(或.mako文件或其他任何调用文件)的类似方式调用。
  • 由于它听起来像框架,我需要将html文件和.py / .mako放在同一目录中还是必须分开?
  • 编辑:我也可以问我是否可以调用我的扩展名.psp(即使它不是mod_python)。

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

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

PS。我知道所有框架布道者都会跳我,但目的不是如何编写代码。因为在Pythons,Djangos上都找不到noob / step-by-step教程 或者Makos网站以及Pylons,Pyramid等。因此必须假设任何想要这样做的人都知道他们的框架实现方法。但我不这样做,所以我只想将Python代码放入HTML中,而不是花费/浪费时间学习Python本来应该完全解决的问题。

PPS。通过noob,我的意思是我很想知道诸如此类的基础知识。拿这个代码并放入这种类型的文件并将该文件放在那里。然后拿这个文件来做。我无法在任何地方找到这个。它就像一个公共秘密......

1 个答案:

答案 0 :(得分: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开发人员都没有为网络开发。

  

由于在Pythons上都找不到noob / step-by-step教程,   Djangos或Makos网站以及Pylons,Pyramid等   因此,必须假设任何想要这样做的人都知道他们的   框架实施方法。

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

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

其余的问题源于Python不像PHP;因此,您在Python生态系统中找不到您期望的PHP。