質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

971閲覧

python cgiを2回使う

yochun02

総合スコア76

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/09/29 15:09

編集2020/09/29 15:38

cgiで簡単なwebアプリを作ろうとしてますが、多くの参考サイトでは
html(1) -> cgi.py(2)で結果表示
の段階で終わっているのですが、(2)の処理の後、別のcgiプログラムにデータを受け渡したいのですがうまくいきません。

状況

ディレクトリ構造

src/index.html
src/cgi-bin/cgi1.py
src/cgi-bin/cgi2.py

ソース

index.html

html

1<html> 2<body> 3<form action="/cgi-bin/cgi1.py" method="POST"> 4 <p> 5 <input type="text" name="input" value="hoge" /> 6 </p> 7 <input type="submit" value="submit"> 8</form> 9</body> 10</html>

cgi1.py

python

1import sys 2import io 3sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 4import cgi 5import cgitb 6 7cgitb.enable() 8 9form = cgi.FieldStorage() 10# ### 入力データ 11inputval = form.getvalue('input', '') # <- hoge 12inputval2 = inputval + fuga # <- hogefuga 13 14htmlText = ''' 15<!DOCTYPE html> 16<html> 17 <head><meta charset="UTF-8" /></head> 18<body> 19 20 <p>inputval:%s</p> 21 22 <form action="/cgi-bin/cgi2.py" method="POST"> 23 <input type="submit" name="input2" value="%s"> 24     <input type="submit" value="submit"> 25 </form> 26</body> 27</html> 28''' % (inputval, inputval2) 29 30print(htmlText)

cgi2.py

python

1import sys 2import io 3sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 4import cgi 5import cgitb 6 7cgitb.enable() 8 9form = cgi.FieldStorage() 10# ### 入力データ 11inputval2 = form.getvalue('input2', '') # <- hogefuga 12 13print(inputval2)
エラー

plain

1http://localhost:8000/cgi-bin/cgi2.py 2 3hogefuga HTTP Error 404: Not Found

hogefugaは一応わたっているようでした。そのあとのHTTP Error 404がなぜ生じるのかがわかりません。。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

普通に行けてたました。エラーはまた別の問題でした。(スクレイピング時のユーザエージェント情報を与えていなかったのではじかれてた模様->リクエストの際にヘッダーを与えることで解決しました)

投稿2020/09/29 19:57

yochun02

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問