1

ローカルの SQLite3 データベースからデータを取得し、そのデータを HTML ファイルにフォーマットするスクリプトを作成したいと考えています。

どの「ツール」を使用すればよいかわかりませんが、sqlite3 gem が必要になるので、HTML ビットに Sinatra を使用することを考えていました。

更新: Web サービスを作成するつもりはありません。入力として sqlite3 データベースを使用して Ruby スクリプトを実行し、特定のデータ セットを抽出し、それをフォーマットして単一のファイルとして出力したいだけです。HTML について言及しましたが、マークダウンのようなものは、必要な形式でエクスポートできるため、優れています。

4

2 に答える 2

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" 
于 2012-01-31T21:48:50.660 に答える
1

Web アプリ用の Sinatra の選択が気に入り、データベース アダプター用の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

ホーム.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]

Sinatra、Sequel、または Haml の完全な紹介は、Stack Overflow の範囲外です。これで始められることを願っています。

于 2012-02-01T07:31:33.003 に答える