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

基本的に、ファイルをループして各ファイルのテーブル行を作成し、ファイルを削除するためのリンクを追加するシステムがあること。次に、テーブルを結合して 1 つの文字列を作成し、この文字列を 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:

また、コードでまったく変換されていないこともわかったので、Web ページに配置したとおりに変換されますか? わかりませんが、それが私がここにいる理由だと思います。

編集2:

問題を修正しました。HTML コードの行を Web ページまで解析すると ({{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 に答える