gpt4 book ai didi

php - 使用没有 rails 的 ruby​​ 制作网页

转载 作者:IT王子 更新时间:2023-10-28 23:53:30 28 4
gpt4 key购买 nike

我正在寻找一种无需 Rails 即可编写简单 ruby​​ 代码的方法。我来自 PHP 世界,有时,我只是构建一个带有 Mysql 连接的页面,运行查询并将结果显示在一个简单的表格中(例如,一个简单的日志或报告)。示例:

<?php
$con = mysql_connect("localhost","user","pass");
mysql_select_db("mydb");

$query = mysql_query("SELECT * FROM users");

while($data = mysql_fetch_assoc($query) {
echo "<p> $data[name] - $data[age] </p>";
}
?>

这只是一个简单的例子,但反射(reflect)了我需要用 ruby​​ 做什么。我不希望所有 Rails 框架都做这样的事情。如何使用简单的 ruby​​ 代码实现此目的?

最佳答案

首先,Ruby 不像 php。不要将文件放入 public_html 并期望一切正常。

不过,这样做还是有可能的,有点。所以我们使用没有 ORM 的 Mysql 适配器,就像 php 默认那样。

在开始之前,您将需要 mysql 适配器,因此安装它:

gem install mysql2

比起写这样的东西:

require "rubygems"
require "mysql2"

client = Mysql2::Client.new(
:host => "127.0.0.1",
:username => "root",
:password => "",
:database => "mydb"
)
records = client.query("SELECT * FROM users")

records.each {|r| p "<p>#{r['name']} - #{r['age']}</p>"}

现在在控制台中运行它

ruby name_of_the _file.rb

这将在控制台输出记录。如果你想要浏览器输出,你将不得不编写一个小型服务器:

#!/usr/bin/ruby
require 'rubygems'
require 'socket'
require 'mysql2'

webserver = TCPServer.new('127.0.0.1', 6789)

client = Mysql2::Client.new(
:host => "127.0.0.1",
:username => "root",
:password => "",
:database => "mydb"
)

records = client.query("SELECT * FROM users")

while (session = webserver.accept)
session.print "HTTP/1.1 200/OK\r\nContent-type:text/html\r\n\r\n"
request = session.gets
records.each {|r| session.print "<p>#{r['name']} - #{r['age']}</p>"}
session.close
end

现在当您执行 ruby application.rb 时,服务器将在端口 6789 上启动并输出所需的数据。您稍后可以对其进行反向代理并在端口 80 上使用它。

关于php - 使用没有 rails 的 ruby​​ 制作网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664553/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com