与えられたのは、tipfy (python) を使用した gae で、次のモデルです。
greeting.avatar = db.Blob(avatar)
ブロブを表示するためのテンプレートタグは何ですか (ここの画像)?
与えられたのは、tipfy (python) を使用した gae で、次のモデルです。
greeting.avatar = db.Blob(avatar)
ブロブを表示するためのテンプレートタグは何ですか (ここの画像)?
この場合、ブロブは画像です。これは素晴らしいことです。使うだけimages.get_serving_url(blob_key)
で幸せ。私はこの関数を使用しましたが、信じてください。画像を提供するのに最適です。必要なピクセル サイズを=sxx
URL に追加するだけです。xx
画像のサイズを自動的に変更して提供します。
ブロブが画像でない場合は、簡単な方法でうまくいきません。を使用しBlobReader
て文字列表現を作成し、出力しますか?
しかし、それが画像でもテキストでもない場合、HTML に何を書きたいと思うでしょうか?
そのような任意のデータを表示するための組み込みのテンプレート タグはありません。私は2つのアプローチを考えることができます:
アバターを画像として提供するためのリクエスト ハンドラーを記述します。あなたの例に基づいて、リクエストハンドラーはグリーティングを検索して画像データを取得し、適切なContent-Type: image/jpeg
(image/png
または何でも)ヘッダーを送信してから、BLOBデータを応答ストリームに書き込むだけで済みます。
次に、テンプレートで、次のように画像を表示します。
<img src="/show-avatar/{{ greeting.key().id() }}">
blob データを取得して適切なデータ URLを生成するカスタム テンプレート タグ/テンプレート フィルターを記述します。これにより、生成している HTML ドキュメントで画像データが直接エンコードされます。
次に、テンプレートで、次のように画像を表示します。
<img src="{{ greeting.avatar|dataurl }}">
これにより、テンプレートの次の行に沿った出力が得られます。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IAAAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1JREFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jqch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0vr4MkhoXe0rZigAAAABJRU5ErkJggg==" />