1

所以基本上我正在使用Bottle for Python 编写一个 Web 应用程序。但是我遇到了一个非常奇怪和令人沮丧的错误:每当我尝试通过代码放置任何 HTML 代码时,它都会将它们转换为 HTML 实体。在这里,我最好让代码解释一下:

def fillFlist():
    files = os.listdir('Files/FS/')
    tFlist = []
    for item in files:
        tFlist.append('<tr><td>')
        tFlist.append(item)
        tFlist.append('</td><td>')
        tFlist.append('<a href="localhost/delete/' + item + '">Delete</a></td></tr>')
    tempO = ''
    tempI = tempO.join(tFlist)
    print(tempI)
    return tempI

基本上有一个系统将遍历文件并为每个文件创建一个表行,并添加一个链接以删除文件。然后你可以看到加入表格来创建一个字符串,然后这个字符串将被插入到 HTML 中以创建一个表格,但我最终得到的不是一个漂亮的表格:

<tr><td>test.txt</td><td><a href="localhost/delete/hello.txt">Delete</a></td></tr>

页面上的直接和原始。我一直在谷歌上搜索,试图解决这个问题,但一无所获。一些额外的说明可以帮助你:

Cookie = request.get_cookie('uploaded')
Flist = fillFlist()

return template(loadHTML('index.html'), flist=Flist, cookie=Cookie)

这基本上就是将表格插入 HTML 文件的意思,通过这样做:

{{flist}}

基本上,我把它放在 HTML 代码的任何地方,上面的模板需要一个字符串放在它的位置,所以无论何时加载页面,无论该字符串中的什么,都放在 {{varname}} 所在的位置.

祝你好运,提前谢谢你!

编辑1:

我还发现它根本没有在我的代码中被转换,所以它在它放在网页上时就被转换了?我不知道,我猜,这就是我在这里的原因。

编辑2:

好吧,我解决了这个问题,当我将 HTML 代码行解析到网页时(使用 {{varname}} 方法),它会将特殊字符转换为实体。因此,在键盘上苦苦挣扎了一整天,尝试了不同的方法后,我使用一些基本的文件 I/O 和一些 iFrame 修复了这个问题。但是谢谢大家的回复!很高兴看到 stackoverflow 的响应速度非常快!

4

1 回答 1

2

而不是使用像瓶子这样的外部库,你可以使用标准的python来这样做(只要你的目的得到解决,我认为它不会有所作为)

您可以使用标准库中的 Html 解析器,请参阅 此页面

>>> import HTMLParser
>>> h = HTMLParser.HTMLParser()
>>> print h.unescape('&pound;682m')
£682m
EDIT for Python 3: the HTMLParser module has been renamed to html.parser.

>>> import html.parser
>>> h = html.parser.HTMLParser()
>>> print(h.unescape('&pound;682m'))
£682m
于 2013-06-19T11:54:39.857 回答