(89) Pythonで画像をHTTP出力する。

投稿者: | 2017年8月21日

14,775 views

この記事は最終更新から 2367日 が経過しています。

アクセスカウンタの画像表示などでよく使われる方法だ。
通常、HTMLの IMGタグの SRC属性には画像ファイルのURLを指定する。
SRC属性に Pythonプログラムを指定し、HTTPレスポンスとして画像を返させることができる。

用途

プログラムで動的に生成した画像をHTTPレスポンスとして返したい場合に使用できる。
また、画像ファイルのパスを秘密にしておきたい場合に使用できる。

プログラム

以下のプログラムでは、IMGタグの SRC属性に Pythonプログラムを指定している。
この Pythonプログラムでは、実行ごとにランダムに画像を選択し、HTTPレスポンスとして返している。

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>サンプル</title>
</head>
<body>
<img src="load_img.cgi">
</body>
</html>

load_img.cgi

※cgiファイルはアップロード後に実行属性を付与しないと500エラーが出るので注意

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import os
import random

# 画像ファイルをランダム選択
img_src = "%d.jpg" % random.randint(1,2)

# 画像を出力
print "Content-Type: image/jpeg"
print "Content-Length: %d\n" % os.stat(img_src).st_size
print open(img_src,"rb").read()

実行サンプルはこちら(↓)
https://www.dogrow.net/python/sample/0089

[F5]キー押下などでページを更新するとランダムに表示画像が変わる。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です