问题描述
我已经使用 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 部分。