2012-04-17 11 views
0

Webアプリケーションのクライアントに返信するAJAX応答の形式として使用されるJSONオブジェクトを設計しました。私はそれにHTMLコードを入れることによってそれを強化する過程にあります。しかし、必要なエスケープ文字は、正確な知識と経験が不足しているため、私をむしろ不快にしています。文字エスケープ:Pythonの文字列リテラルからJSONまで、次にHTMLへ

私はサーバーエンド言語/フレームワークとしてPython/Djangoを使用しています。消費するブラウザ用の適切なHTMLノードへのリテラルPython文字列から取得するには、エスケープ文字で私の漠然とした知識を持って、私は、文字のエスケープの2つの段階が必要になると思います:

  1. JSONにPython文字列リテラルシリアライズとJSONの必要に応じて文字をエスケープします。
  2. JSONオブジェクトがクライアント側で受信されたら、HTMLの必要に応じて文字をエスケープします。 jQueryを使用することに注意してください。

上記の2つの段階についての私の見解は正しいですか?もしそうなら、どのように達成できますか?

例を使用して説明するのが簡単な場合は、これは1つです:

ここで、sはPython文字列リテラルです。そして、私はそれがHTMLで

<a href="http://www.foo.com/bar/">"Click Here&amp;Here"</a> 

になると思っています。

答えて

2

クライアント側からエスケープする必要がありますか? PythonでこれをJSONにエンコードする前に行うことができます。

from cgi import escape 
from json import dumps 

ajax_response = dumps(escape('<a href="http://www.example.com/path/location' 
          '?query=string&more=this#anchor">' 
          'FooBar & Friends</a>')) 
+0

このソリューションは有望です。私はそれを試してみましょう。お知らせします。ありがとうございました。 – tamakisquare

関連する問題