1

MySQLdbPythonで使用してMySQLレコードを読んでいます。列の1つはビットです。JSONに変換して(変換前と同じように表示されます)、ブラウザーに送信するために使用すると、Pythonコンソールとして、\\u0000またはPythonコンソールに表示されますが、ブラウザーには何も表示されません。Unicodeの文字がわからないからだと思います。\\u0001json.dumps\x00

クライアントまたはサーバーのいずれかで操作することにより、JavascriptTrueまたはこれらの値を取得する方法はありますか?False

4

1 に答える 1

1

サーバー側での操作は次のように簡単です。

import json

def convert_to_bool(bstring):
    return True if bstring == b'\x00' else False

使用例:

your_byte_string = b'\x00'
# you can write also
# your_byte_string = u'\u0000'

print(json.dumps(convert_to_bool(your_byte_string))) 

# >>> true

your_byte_string = b'\x01'
# you can write also
# your_byte_string = u'\u0001'

print(json.dumps(convert_to_bool(your_byte_string)))

# >>> false

次に、このフィールドがtrueの場合、最終的には画像を表示するためのコードを追加することをお勧めします。これは、サーバー側またはクライアント側の両方で実行できます。

サーバ側

javascriptコードでブール変数を使用する予定がない場合は、期待されるHTMLを直接送信できます。

if convert_to_bool(your_byte_string):
    # here I'm just printing it but you should use the dumped string as a json response
    print(json.dumps('The field is <b>true</b>!'))
else:
    print(json.dumps('Unfortunately the field is <b>false</b>.'))

クライアント側

jsonを使用している場合は、その方法を知っていると思いますが、これは基本的なjavascriptですが、完全を期すために、ここにコードを示します。

// javascript code
// yourdata is the field value, retrieved by the ajax call 

if (yourdata) {
    alert('The field is true!');    
} else {
    alert('The field is false!');
}
于 2013-02-09T07:57:52.500 に答える