LoginSignup
20
24

More than 5 years have passed since last update.

Pythonでフォームを受け取って色々やる

Last updated at Posted at 2016-06-08

ごく簡単なHTMLからのフォームを受け取って、フォームの内容によって書き出す内容を変更する。というやつ。CGIで動かす場合には覚えておくと便利なので。

index.html

<form method="POST" action="cgi-bin/index.py">
<p><input type="radio" value="part_a" name="choise_pattern">パターンA</p>
<p><input type="radio" value="part_b" name="choise_pattern">パターンB</p>
<p><input type="radio" value="part_c" name="choise_pattern">パターンC</p>
</form>


上記のようなHTMLがあるとします。Pythonでフォームを受け取って、valueの値によって動作を分けてみます。テクニカルなことを一切せずにごくごくオーソドックスにやってみます。

index.py

import cgi

form = cgi.FieldStorage()
choose_pattern = form["choise_pattern"].value

print "Content-Type: text/html\n"

print """
<!DOCTYPE html>
<html lang="ja">
<head></head>
<body>
"""

if choose_pattern == "part_a":
    print "<p>", u"パターンAが選択されました", "</p>

elif choose_pattern == "part_b":
    print "<p>", u"パターンBが選択されました", "</p>

elif choose_pattern == "part_c":
    print "<p>", u"パターンCが選択されました", "</p>

print """
</body>
</html>
"""

本来なら何も選択されていなかった場合の処理がいるんですが、バリデートチェックを送信前にかけるとかで対処すればいいんじゃないかと。

これを応用することで選択したデザインによってHTMLを書き出して結合する、などといったサイトビルダーも作れます。

というわけで作りました。ホント作っただけ。
選択したデザインブロックをPythonスクリプトがフォームで受け取り、HTMLを吐き出し。
PREVIEWで即閲覧できるツール。

一応Bootstrap使ってそれっぽいデザインにしてみましたが、
どこに需要があるかは全く分かりません。

20
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
24