我正在开发一个Python REST API项目,我需要从数据库中检索数据。数据库表具有时间戳列,因为数据需要每天多次记录。以下是代码的一部分。
在这段代码中,我需要API来显示当天的数据(而不是某个特定日期)。
import requests
import datetime
# Using python requests library, set up GET request
payload = {'date1' : 'CURDATE()', 'date2' : 'CURDATE() + INTERVAL 1 DAY'}
# Send GET request to REST API
r = requests.get('http://localhost:8080/data', params=payload)
# Decode the JSON result of the GET request
rows = r.json()
# Loop through data and format the date string
for i in rows:
i[0] = datetime.datetime.fromtimestamp(i[0]).strftime('%Y-%m-%d %H:%M:%S')
print rows
在date1和date 2部分,我曾经使用某个日期,如2013-12-30和2013-12-31,该程序将返回2013-12-30的所有数据。现在,当我试图要求程序返回当天的任何数据时,程序会给我一个空白结果[]
。
代码需要与数据库通信,但我怀疑问题来自数据库部分。希望每个人都能帮助我。谢谢!
答案 0 :(得分:0)
在Python代码中生成日期,而不是将任意SQL函数传递到数据库执行,这非常危险。
>> import datetime
>> today = datetime.date.today()
>> tomorrow = today + datetime.timedelta(days=1)
>> print today
2013-12-31
>> print tomorrow
2014-01-01
现在,您可以将today
和tomorrow
作为日期字符串(例如str(today)
或'{0}'.format(today)
)传递给您的网络服务。
如评论中所述,您的服务不是RESTful。在进一步讨论之前,您可能希望阅读REST。