2016-11-25 14 views
0

フラスコ& pythonを使用してcouchdbから画像添付ファイルを取得し、imgurl.htmlに画像を渡して表示します。 問題は私だけがこれを得ることです:表示画像フラスコ/ python経由でhtmlのcouchDBから添付

couchdb.http.ResponseBodyオブジェクトを0x103b9c0b8>返しました。

app.py

from flask import Flask, request, render_template, flash, request, url_for, redirect 
import couchdb 
import requests 

app = Flask(__name__) 

couch = couchdb.Server('http://127.0.0.1:5984/') 

db = couch['test2'] 

doc = db.get_attachment('2', 'aboutme.jpg', default=None) 
print("doc: ", doc) 

@app.route('/') 
def index(): 
    return render_template('index.html') 


@app.route('/imgurl/') 
def imgurl(): 
    return render_template('imgurl.html', doc = doc) 


@app.route('/page/') 
def page(): 

    return("Andrew Irwin")  
    #return render_template('index.html') 

if __name__ == '__main__': 
    app.run() 

test.htmlという

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 

</head> 
<body> 
    <img src="{{ doc }}" id="imgslot" > 

    <h1 id="h1id"> {{ doc }} </h1> 
</body> 
</html> 

答えて

1

私が@ SHCの答えを見る前に、私は解決策を思いつきました。 私がしたのは、添付ファイルの名前を取得し、そのURLをhttp:localhost:5984/dbName/docId/attachmentNameのようなURLの末尾に追加することでした。 私はそのURLをhtml img srcに渡しました。あなたの答えは@SHCありがとうございます。申し訳ありません、私はそれをもっと早く見ませんでした。

1

一つの選択肢は、base64でエンコードすることができ、画像データは、CouchDBのから返さとの文字列として符号化されたデータを渡しますテンプレートをレンダリングすることができます。例えば。

img = db.get_attachment('2', 'aboutme.jpg', default=None).read() 
img_b64 = base64.b64encode(img) 

def imgurl(): 
    return render_template('imgurl.html', doc = img_b64) 

は次にテンプレートで:

<img src="data:image/png;base64,{{ doc }}" id="imgslot" > 

セキュリティモデルに応じて別のオプションは、例えば、画像タグに画像のURLを追加することによって、CouchDBのから直接画像を提供することができGetting url for an attachment

+0

本当にありがとうございます。ありがとうございます。あなたが答える前に、私は添付ファイル名を取得し、それをHTMLのimg srcに渡すURLの最後に追加することでそれを把握することができました。そのImは、HTMLをcouchdbからアップロードすることができます。イメージはキャンバスになります。と私は少し固執した!あなたは私にそれを手渡すことができますか? –

+0

私は答えを見つけたと思います。別の質問として投稿することが考えられます。 –

+0

あなたは好きなだけ別の質問として投稿できます。画像に変換しようとしているhtmlキャンバスをアップロードしてからアップロードし、それを添付ファイルとしてcouch dbに保存してください。 –

関連する問題