我正在尝试制作一个连接到我的小型数据库的python文件,该数据库将根据html表单中设置的日期和时间检索温度和湿度。
<script>
$(function() {
$( "#dateValue" ).datepicker();
});
</script>
</head>
<body>
<form name="myForm" method="post" action="/cgi-bin/script1.py">
<p>Date: <input type="text" name="dateValue" id="dateValue"></p>
<p>Time: <select name="timeValue" id="timeValue">
<option value="0">--All Day--</option>
<option value="01">1am</option>
<option value="02">2am</option>
<option value="03">3am</option>
<option value="04">4am</option>
<option value="05">5am</option>
<option value="06">6am</option>
<option value="07">7am</option>
<option value="08">8am</option>
<option value="09">9am</option>
<option value="10">10am</option>
<option value="11">11am</option>
<option value="12">12am</option>
<option value="13">1pm</option>
<option value="14">2pm</option>
<option value="15">3pm</option>
<option value="16">4pm</option>
<option value="17">5pm</option>
<option value="18">6pm</option>
<option value="19">7pm</option>
<option value="20">8pm</option>
<option value="21">9pm</option>
<option value="22">10pm</option>
<option value="23">11pm</option>
<option value="24">12pm</option>
</select>
<input type="submit" value="Enter"/>
</form>
所以一旦他们输入了这些数据,他们应该连接到一个名为readingings.db的数据库并连接到具有结构的表天气
ID dateReading timeReading 温度 湿度
如何连接到数据库,仅检索表格中所选日期和时间的温度和湿度。我怎么做到如此,如果他们选择上午10点,它选择在上午10点以内的所有温度和湿度,所以从上午10点到上午11点类型的东西。如果当时数据库中没有日期或时间,则表示没有找到日期和时间的数据。
到目前为止这是我的剧本
#!/usr/bin/python
import sqlite3 as lite
import sys
import cgi, cgitb
form = cgi.FieldStorage()
dateValue = form.getvalue('dateValue')
timeValue = form.getvalue('timeValue')
con = lite.connect('readings.db')
with con:
cur = con.cursor()
cur.execute('SELECT temperature, humidity FROM weather WHERE dateReading = dataValue AND timeReading = timeValue')
rows = cur.fetchall()
for row in rows:
print row
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>received from the form %s %s</h2>" % (dateValue, timeValue)
print "</body>"
print "</html>"
最后一点点是一个测试,以确保我从表单
获取数据答案 0 :(得分:0)
根据您的注释,只要输入文本的格式与数据库中的文本对象格式相同,那么日期就是它。
你唯一的问题是时间。我建议你将inputTime转换为一个整数,向它添加1,然后将其转换回字符串。
use_time = int(inputTime)
finish_time = use_time + 1
start_time = str(use_time)
finish_time = str(finish_time)
然后你的select语句如下所示:
cur.execute('SELECT temperature, humidity FROM weather WHERE dateReading = dateValue and timeReading >= start_time and timeReading < finish_time')