Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python从sqlite检索数据_Python_Sqlite - Fatal编程技术网

用python从sqlite检索数据

用python从sqlite检索数据,python,sqlite,Python,Sqlite,我正在尝试创建一个python文件,该文件连接到我的小型数据库,该数据库将根据html表单中设置的日期和时间检索温度和湿度 <script> $(function() { $( "#dateValue" ).datepicker(); }); </script> </head> <body> <form name="myForm" method="post" action="/cgi-bin/script

我正在尝试创建一个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>
因此,一旦他们输入了数据,他们就应该连接到一个名为readings.db的数据库,并连接到具有该结构的表weather

身份证 日期阅读 计时 温度 湿度

如何连接到数据库?仅检索表单中所选日期和时间的温度和湿度。我该怎么做呢?如果他们选择上午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>"

最后一点更像是一个测试,以确保我是根据您的评论从表单中获取数据的,只要输入文本与数据库中的文本对象具有相同的格式,那么日期就是它。 你唯一的问题是时间。我建议您将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')

这取决于数据在数据库中的存储方式,如果数据是datetime格式,则必须先将选定的datevalue转换为相同的类型,然后才能使用它。如果您展示了weather表的数据库模式结构,并说明datevalue是否是python datetime对象,或者至少向我们展示它是如何表示的,这可能会有所帮助。很明显,时间是一个数字字符串。数据库中的数据的结构与formIn接收数据的方式相同。数据库中的dateReading定义为datetime、int、text等,而timeReading定义为int、float、text等?这很重要,因为你必须对同类进行比较。对于输入数据,请尝试打印typedateValue和typetimeValue的值,这将告诉您如何接收它们。一旦您知道输入数据和数据库中两项的数据类型,您就有可能实现目标。时间和日期都是文本。