Python: CGIで呼び出し側に複数の値を返す方法
Pythonを使ったCGIで、 呼び出し側(JavaScript)に複数の値を返すを解説します。
JSONを使用する方法
最も一般的で推奨される方法は、JSONを使用することです。
1. PythonのCGIスクリプトで:
import json import cgi print("Content-Type: application/json") print() data = { "value1": "Hello", "value2": 42, "value3": [1, 2, 3] } print(json.dumps(data))
2. JavaScript側で:
fetch('your_cgi_script.py') .then(response => response.json()) .then(data => { console.log(data.value1); console.log(data.value2); console.log(data.value3); });
この方法では、複数の値を構造化されたデータとして簡単に送受信できます.
カスタム区切り文字を使用する方法
単純なテキストベースの方法も可能です:
1. PythonのCGIスクリプトで:
print("Content-Type: text/plain") print() print("value1|value2|value3")
2. JavaScript側で:
fetch('your_cgi_script.py') .then(response => response.text()) .then(data => { const [value1, value2, value3] = data.split('|'); console.log(value1, value2, value3); });
この方法は単純ですが、データの型や構造が限られます.
HTMLを使用する方法
HTMLを生成し、JavaScriptでパースする方法もあります:
1. PythonのCGIスクリプトで:
print("Content-Type: text/html") print() print("<div id='value1'>Hello</div>") print("<div id='value2'>42</div>") print("<div id='value3'>1,2,3</div>")
2. JavaScript側で:
fetch('your_cgi_script.py') .then(response => response.text()) .then(html => { const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); console.log(doc.getElementById('value1').textContent); console.log(doc.getElementById('value2').textContent); console.log(doc.getElementById('value3').textContent); });
この方法は、HTMLの構造を利用してデータを送信します.
いずれの方法でも、PythonのCGIスクリプトから複数の値を返し、JavaScript側で受け取ることが可能です。JSONを使用する方法が最も柔軟で一般的ですが、具体的な要件に応じて適切な方法を選択してください。