ユーザ用ツール

サイト用ツール


prog_cgi:hello_world

hello, world

ブラウザに文字列を表示するだけのプログラムを作ります。
CGIモジュールを使う簡単な例となります。

準備

  • ダウンロードページから、最新のファイルをダウンロードします。
  • tarコマンド等で展開します。
  • 付属の簡易Webサーバーを起動します。
tar xvfz alone-*.tgz
cd alone-*
ruby lib/al_server.rb

これで 3000番ポート(v3.8以降)もしくは10080番ポート(v3.7以前)でウェブサーバーが起動しています。ブラウザでアクセスすると、サンプル一覧が表示されます。

http://localhost:3000

アプリの作成

サンプルに ハローワールドがありますので、これを書き換えて自分のアプリケーションにしてみます。

まず、既存のサンプルをコピーします。
リスト表示の時ややこしいので、READMEファイルは削除しておいてください。

cd controllers
cp -r 00_hello my_hello
cd my_hello
rm README

使われるファイルは、次の2つです。

main.rb  コントローラメインファイル
index.rhtml  表示用HTMLのテンプレート

main.rb
require 'al_template'
 
class HelloController < AlController
  def action_index()
    @my_message = "Hello world."
 
    AlTemplate.run( 'index.rhtml' )
  end
end
index.rhtml
<%= header_section %>
  <title>Test</title>
 
<%= body_section %>
  <p><%=h @my_message %></p>
 
<%= footer_section %>

エディターを使って、コントローラを書き換えます。

main.rb
    @my_message = "Hello another world."

次のURLで実行確認します。

http://localhost:10080/index.rb?ctrl=my_hello

解説

このプログラムでは、Aloneのコントローラとテンプレートの2種類の機能を使っています。

プログラムは、ウェブブラウザからのアクセス(リクエスト)をトリガーに開始されます。 ブラウザのURLで指定されたパラメータをもとに、どのプログラムのどのメソッドを動作させるべきかがAlone側で決定され、実行されます。 この場合は、my_hello ディレクトリに置かれた main.rb の、action_index メソッドが呼ばれます。これらAloneのルーティングに関する詳細は、「AlController コントローラ」の項を参照してください。

呼ばれた action_index メソッドでは、変数 @my_message へ、"Hello another world." 文字列を代入します。 そして、テンプレートマネージャを呼び出して、htmlを生成しています。

テンプレートマネージャでは、引数で与えられたテンプレートファイル、および @で始まるインスタンス変数の内容などから、ブラウザに返すhtmlの完全なセットを生成します。

生成されたhtmlはブラウザに返され、ブラウザがそれを解釈して画面に表示します。

テンプレートに関する詳細は、「AlTemplate テンプレート」の項を参照してください。

prog_cgi/hello_world.txt · 最終更新: 2022/02/16 10:31 by hirohito