-5

我想根据浏览网站的用户当前激活/看到的菜单更改网站的徽标。

例如我有 www.urltowebsite.com/menu1 = Header Logo 1 然后我有 www.urltowebsite.com/menu2 = Header Logo 2

在此之上,我想添加一条 else 语句,说明:如果选择了任何其他菜单,请使用标题徽标 3。

我怎样才能用 Python 做到这一点?我似乎无法理解如何定义在何处以及如何调用 HTML 网站上的不同功能。

哦,我坚持用 Python 来做这件事。并且最好没有任何框架,例如 Django。但如果需要,我可以安装 web.py

编辑:

那我是否被迫使用php?我想一劳永逸地开始在我的网络项目中使用 Python。正如我首先所说,该网站是用简单的 HTML 制作的。Javascript 函数仅用于通过 AJAX 提供 HTML 菜单。同样,这对于我想要做的事情并不重要,因为菜单有类,我可以在 php 中定义这些类,从而更改我的徽标/标题。我想做的是在这种情况下使用 Python。这是该网站的代码片段:

<div id="header">
    <span class="title"><img src="http://www.url.com/subfolder/images/logo.png"/>
        </span>
    </div>

还有一些与此相关的:

<div id="menu">
<ul>
<li><a href="#slider" id="menu_slider">001</a></li>
<li><a href="#about" id="menu_about">002</a></li>
<li><a href="#application" id="menu_portfolio">003</a></li>
<li><a href="#about" id="menu_contact">004</a></li>
<li><a href="#contact" id="menu_reel">005</a></li>
<li><a href="#contactresell" id="menu_awards">006</a></li>
<li><a href="#handel" id="link">007</a></li>
<li><a href="#faq" id="menu_faq">008</a></li>
</ul>
</div>

那么我可以在这里使用python吗?

4

3 回答 3

1

你要求以错误的方式做错误的事情。

为了根据 Python 中的 URL 更改徽标,您需要 Python 生成页面并知道该 url 是什么。

在 Python 中有两种方法可以做到这一点:

  • 使用现有的 Web 框架
  • 编写自己的 Web 框架

“Python”不知道也不关心你的 URL 是什么——框架和支持库(Django、Pyramid、Bottle、Flash、Tornado、Twisted 等)通过与底层 Web 服务器的集成来确定 URL 是什么(尽管有些有自己的网络服务器耦合)。同样,PHP 并不真正知道或关心 URL 是什么——这些信息来自与 Apache 或 FCGI/Nginx/等的集成。PHP 往往会附带完成大部分/所有集成。还值得注意的是,PHP 不仅仅是一种语言,而是一种 Web 框架。Python 只是一种语言。

大多数 Python 框架将写入 WSGI 规范,并具有一个“请求”对象,其中包含您想要的所有数据(并且许多使用 WebOb 库)。

如果您打算使用静态 HTML 文件做所有事情,那么您有几个选择:

  • 有一个静态目录。使用 javascript 找出地址栏位置,并渲染相应的徽标/编写页眉和页脚。
  • 有一个包含所有 HTML 的“模板”目录。使用 Python 脚本使用自定义页眉/页脚构建每个网站的静态版本,并将您的网络服务器配置为为每个域提供不同的服务。
于 2012-09-02T19:38:18.610 回答
0

不,Python 不能在 HTML 网页中运行。如果您真的在提供纯 HTML 页面,那么您必须在页面加载后使用 javascript 在浏览器中执行代码。但是,由于您提到使用 AJAX,听起来您提供纯 HTML 而是提供一些服务器端代码并​​不是真的。如果是这样,那么该服务器端代码就是放置您的 HTML 构造逻辑的地方。要知道做到这一点的最佳方式,您必须描述服务器上发生的事情。

于 2012-09-02T19:28:26.297 回答
0

虽然没用过,但听说pyhp项目或多或少地为python提供了类似php的嵌入功能。

于 2012-09-02T19:37:17.993 回答