【Python】フォームからデータを送信する

cgiモジュールを用いて、フォームから送信された内容を取得する。

import cgi
import cgitb
import sys
import io

cgitb.enable()
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')

form = cgi.FieldStorage()
name = form.getvalue('hn','')
message = form.getvalue('msg','')

header = 'Content-Type: text/html; charset=utf-8'
body = f'''
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>【Python】フォームからデータを送信する</title>
  </head>
  <body style="background-color:lightyellow">
    <h1>いのはの掲示板へようこそ!</h1>
    <form action="index.py" method="post">
      <p>名前:<input type="text" name="hn"></p>
      <p>メッセージ:<input type="text" name="msg"></p>
      <input type="submit" name="submit">
   </form>
    <hr/>
    <p>{name}</p>
    <p>{message}</p>
  </body>
</html>
'''

print(header)
print()
print(body)

サンプルページ

参考

cgitb --- CGI スクリプトのトレースバック管理機構 — Python 3.10.0b2 ドキュメント
cgi --- CGI (ゲートウェイインターフェース規格) のサポート — Python 3.10.0b2 ドキュメント

コメント

タイトルとURLをコピーしました