SQLの窓

2018年05月15日


Ruby 2.4 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました

Ruby 2.4.0 リファレンスマニュアル

Python 3.6 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました と同様です。HTML 部分はヒアドキュメント作成し、GET でも POST でも動作します。

require "cgi"
cgi = CGI.new

puts "Content-Type: text/html; charset=utf-8"
puts  "Expires: Thu, 19 Nov 1981 08:52:00 GMT"
puts "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
puts "Pragma: no-cache"
puts

params = cgi.params

fld_names = {"氏名" => "field1", "フリガナ" => "field2"}
fld_names.each { |key, value|
	if params[value].empty? then
		params[value] = ""
	end
}

out_client = <<HTML
<html>
<head>
</head>
<body>
	<form>
		<p>氏名 : <input type="text" name="#{fld_names["氏名"]}" value="#{params[fld_names["氏名"]][0]}"></p>
		<p>フリガナ : <input type="text" name="#{fld_names["フリガナ"]}" value="#{params[fld_names["フリガナ"]][0]}"></p>
		<p>送信 : <input type="submit" name="send" value="送信"></p>
	</form>
</body>
</html>
HTML

print out_client

Hash#each

※ ドキュメントの参照
fld_names = {"氏名" => "field1", "フリガナ" => "field2"}
fld_names.each { |key, value|
	処理
}
ハッシュのキーと値を引数としてブロックを評価します。 Array#empty? ※ ドキュメントの参照
require "cgi"
cgi = CGI.new
params = cgi.params
if params[value].empty? then
	params[value] = ""
end
同名の値がブラウザより送られて来る事を想定して、params[value] は配列になります。なので、普段は先頭の params[value][0] を使用する事になります。ですから本来ならば、params[value] = [""] ですが、後続の処理的にも結果的にも同じなので、単純に "" をセットしています 式展開 ※ ドキュメントの参照
<input type="text" name="#{fld_names["氏名"]}" value="#{params[fld_names["氏名"]][0]}">
"(ダブルクォート) で作成されたリテラルの中に #{} の形式で変数や文字列を返すメソッドを埋め込むんで、内容に置き換える事ができます。 AN HTTP Server の設定 テストにはまだまだ使える(重宝する) AN HTTP Server の正しい使用方法
posted by lightbox at 2018-05-15 00:00 | Ruby 2018 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり