将 html 导入 python,识别 html 文件文本中的 python 变量

问题描述

我已经使用 Micropython 设置了一个网络服务器,如 here 所述。 在教程中,有一个 html 变量,我试图将其外部化到一个单独的文件中,然后像这样读取它:

import codecs
with codecs.open("main.html",'r') as f:
    html = f.read()

原则上这很好用,只有一个缺陷。 html 变量声明中包含一个名为 gpio_state 的变量,如下所示:

html = """---html code stuff---""" + gpio_state + """---more html stuff---"""

当我按照预期直接在 .py 文件中使用 gpio_state 变量时,它会解析为 ON 或 OFF。 当 html 位于不同的文件中并使用上述方法导入时,它会被读取为字符串。 我在浏览器中看到 gpio_state 和 """ 字符。

是否可以在python脚本中导入带有变量的html文件

抱歉 - 我可能在这里缺少一些 Python 词汇,本可以更简洁地表达问题!

解决方法

这可能被描述为读取一个模板,并替换其中的可变部分。可能有一些库可以做模板,但在 MicroPython 中,一个小的解决方案可能就足够了。

将文件读入变量后,就得到了一个字符串,因此可以使用内置的字符串方法,例如replace(look-for,replace-with)。例如:

html2 = html.replace("gpio_state",gpio_state)

您可能不应该在文件的开头和结尾使用 """ 字符串分隔符,因为这不是 html 的一部分。通常,在模板系统中,一些特殊字符序列用于从 html 中分隔可变部分,例如 <?gpio_state?>,但如果您愿意,您可以保留 """ + gpio_state + """,如果这不太可能发生在真正的 html 部分。