【发布时间】:2015-03-02 12:45:02
【问题描述】:
我一直在研究与数据库交互以及在数据库中存储信息。目前,我正在为我的编程课做一个项目,我正在尝试创建一个注册页面。此时在我的signup.html 文件中,表单需要两个输入:用户名和密码。然后一旦提交,它会转到我的app.rb 文件中的 post 方法根目录。现在,在app.rb 文件中,在/sources 根目录(这是我的signup.html 文件中表单的发布方法根目录)我拥有它,因此输入的凭据保存在我的数据库中。现在我想这样做,以便数据库交叉检查以确保没有人与刚刚输入的用户名相同。换句话说,如果用户名已被占用,则无法注册。如果使用了用户名,我希望出现一条消息,说明用户需要输入新的所需用户名。如果没有使用用户名,我希望它重定向到我创建的home.html 文件。我进行了研究,发现这样做的方法是使用SELECT column_name FROM table_name。但我不知道该把代码放在哪里。它是否在我的 app.rb 文件中的 /sources 根目录下?
非常感谢任何帮助。这是我的代码:
在我的signup.html 文件中:
<p>Please fill out the information below to sign up.</p>
<form action = "/sources" method="post">
Username: <input type="text" name ="username" placeholder="Username"></br>
Password: <input type="password" name ="password" placeholder="Password"></br>
<input type="submit" value="Submit">
</form>
在我的app.rb 文件中:
require 'sinatra'
require 'sequel'
require 'rubygems'
require 'simple-rss'
require 'open-uri'
DB = Sequel.connect('sqlite://test.db')
get '/chart' do
DB.create_table(:db) do
primary_key :id
String :username
String :password
end
#I realize this is not a professional way of creating the database
# but I'm not looking for how to change this at the moment
end
post '/sources' do
@username = params[:username]
@password = params[:password]
@items = DB[:db]
@items.insert(:username => @username, :password => @password)
end
get '/signup' do
redirect 'signup.html'
end
【问题讨论】:
标签: ruby database sqlite sinatra sequel