2012-01-31 4 views
1

ローカルのSQLite3データベースからデータを取得し、そのデータをHTMLファイルにフォーマットするスクリプトを作成します。Rubyを使用してSQLite3データベースからデータを抽出し、静的HTMLとして出力するにはどうすればよいですか?

"ツール"は何を使うべきか分かりませんが、sqlite3の宝石が必要になると思って、HTMLビットとしてSinatraを使うことを考えていました。

更新日:私はWebサービスを作成するつもりはありません。私は、sqlite3データベースを入力としてRubyスクリプトを実行し、特定のデータセットを抽出して、フォーマットして単一のファイルとして出力したいとします。 HTMLについて言及しましたが、markdownのようなものは、あなたが望む形式でエクスポートすることができます。

答えて

1

httpプロトコルが必要ない場合は、テンプレート言語を使用することをおすすめします。 haml

require "rubygems" 
require "haml" 

template = Haml::Engine.new(<<-EOD) 
%table 
    - vs.each do |v| 
    %tr 
     %td= v 
EOD 
template.render(Object.new, :vs => ["a", "b", "c"]) 
#=> "<table>\n <tr>\n <td>a</td>\n </tr>\n <tr>\n <td>b</td>\n </tr>\n <tr>\n <td>c</td>\n </tr>\n</table>\n" 
+0

"http'プロトコルが必要ない場合はどういう意味ですか? –

+0

@SergioTulentsev "とし、そのデータをHTMLファイル**にフォーマットします。それでなぜ「シナトラ」は? –

+0

@ VictorMorozああ、その部分を逃した。はい、OPがちょっと混乱しているようです。 –

1

私は、Webアプリケーションのためのシナトラのあなたの選択を好きで、データベースアダプタのSequelを示唆しています。ここでは短い、テストされていないアプリです:

require 'sinatra' 
require 'sequel' 
require 'haml' 

DB = Sequel.connect('sqlite://blog.db') 
get '/' do 
    @entries = DB[:posts].filter(live:true).order(:posted_on.desc).all 
    haml 'home' # finds 'views/home.haml' and makes a string 
end 

get '/:postname' do 
    @post = DB[:posts][short: params[:postname]] 
    haml 'post' 
end 

home.haml

- # this will be wrapped in layout.haml if you have one 
%h1 My Posts 
%p Welcome to my site, I hope you like it. 
#posts 
    - @entries.each do |post| 
    %h2{id:post[:short]} 
     %a{href:post[:short]}= post[:title] 
    %p= post[:overview] 

post.haml

%h1= @post[:title] 
%p#overview= @post[:overview] 
#contents= @post[:html] 

シナトラへの完全な導入、続編、またはHAML外ですスタックオーバーフローの範囲。これはあなたが始めることを願っています。

関連する問題