データをファイルで保存する
Webアプリでデータを保存してみる。YAML形式のファイルに保存する。
クライアント側のブラウザで、ユーザがIDとパスワードを入力し、submitボタンを押すとサーバ側でスクリプトidandpass.pyが実行される。
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> </head> <body> <form action="/cgi-bin/idandpass.py" method="POST"> Input user ID and password<br /> <input type="text" name="usrid" size="20" maxlength="10"/><br /> <input type="password" name="passwd" size="20" maxlength="10"/> <br /> <input type="submit" name="submit" /> </form> </body> </html>
サーバ側で実行するidandpass.pyは以下の通り。
#!/usr/bin/env python import cgi import yaml import subprocess form = cgi.FieldStorage() userid = form.getvalue('usrid', '') userps = form.getvalue('passwd', '') try: fp = open('idandpass.yaml', 'r') string = fp.read() dat = yaml.load(string) fp.close() except: dat = dict() dat[userid] = userps fp = open('idandpass.yaml', 'w') yaml.dump(dat, fp) fp.close() print "Content-type: text/html\n" print "<html><body>\n" print "Save your ID and password" print "</body></html>"
うまくいった。テキストエディタでYAMLのファイルは読めてしまうので、パスワードを保存するのにはもちろん適さないが他で用途はあるであろう。
ここまでの進捗を絵にしておく。