StackOverflow に関する私の最初の質問。. .
Python を使用する Google App Engine アプリケーションで、小さな pdf 画像を html とインラインでページに表示しようとしています。
私は次のように書かれた小さなクラスを持っています:
class modelReport(db.Model):
Applicant = db.StringProperty()
Reportblob = db.BlobProperty()
小さなフォームを使用して画像をアップロードし、画像を次のハンドラーに送信します。
class UploadResults(webapp.RequestHandler):
def post(self):
m = modelReport()
m.Applicant = self.request.get("txtApplicantName")
Reportblob = self.request.get("file")
m.Reportblob = db.Blob(Reportblob)
m.put()
次のコードを使用して、申請者の画像と名前を表示しています。
class RetrieveResults(webapp.RequestHandler):
def get(self):
self.response.out.write('''
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="em">
<head>
<meta http-equiv="Content-Type" content="application/pdf" />
<title>Results Page</title>
</head>
<body>
''')
reports = db.GqlQuery('SELECT * FROM modelReport')
for report in reports:
self.response.out.write('</p><b>%s</b> report is:' % report.Applicant)
self.response.out.write("<div><img src='img?img_id=%s'></img>" % report.key())
self.response.out.write('''
</body></html>
''')
開発サーバーの Datastore Viewer を使用すると、新しい「modelReport」エンティティが表示され、Key、Write Ops、ID、Key Name、Applicant、Reportblob が一覧表示されます。
問題は、出力が申請者を一覧表示し、「?」が付いた小さな青いボックスが表示されることです。画像ファイルが見つからないような途中です。. . また、開発サーバーのログ コンソールには 404 エラーが表示されます。
INFO..."GET /retrieve_results/all_results HTTP/1.1" 200 -
INFO..."GET /retrieve_results/img?img_id=ag...Aww HTTP/1.1" 404 -
INFO..."GET /retrieve_results/img?img_id=ag...BQw HTTP/1.1" 404 -
INFO..."GET /retrieve_results/img?img_id=ag...Bgw HTTP/1.1" 404 -
しばらくの間、間違った「Content Type」ヘッダーを使用している可能性があると考えていましたが、Apache Web サーバーを使用した同様のコードでは、テキストと画像が問題なく表示されます。
空のブロブストア属性「Reportblob」を作成しているようですが、確認またはデバッグする方法がわかりません。
GAE コードを修正するための任意またはすべてのヘルプをいただければ幸いです。