如何验证两个日期是否相同?
How to validate if two dates are the same?
如何实现用户只能在日记条目的 date_created
和 date_modified
字段相同时更新条目的功能?
这是我实现的。我将数据库中入口模型的 date_created 字段与 datetime.date.today()
.
进行了比较
数据模型
class DiaryEntry():
def __init__(self):
self.title = ''
self.body = ''
self.date_modified = None
self.date_created = datetime.date.today()
def save(self, current_user_email):
# insert data into db
query = "INSERT INTO entries (owner_id, title, body, date_created, date_modified) \
VALUES ((SELECT user_id from users where email ='{}'), '{}', '{}', '{}','{}')" \
. format(current_user_email,
self.title,
self.body,
self.date_created,
self.date_modified
)
db.execute(query)
方法
def update_diary_entry(self,entry_id):
query = "select * from entries where entry_id='{}'".format(entry_id)
result = db.execute(query)
entry = result.fetchone()
data = request.get_json()
date_created = entry[4]
if date_created == datetime.date.today():
query = "update entries set title='{}',body='{}' where entry_id='{}'"\
.format(data['title'], data['body'], int(entry_id))
db.execute(query)
return {'message': 'diary entry updated succesfully','date':date_created}, 406
else:
return {'message': 'diary entry can only be updated on the day it was created'}, 406
我目前正在收到第二个 return 声明。我可能做错了什么?
您似乎有 date_created
作为 update_diary_entry()
中的字符串 (str)。这将导致与 Python datetime.date
对象的无效比较,除非您将字符串解析为相同类型:
>>> import datetime
>>> date_created = '2018-07-29'
>>> date_created == datetime.date.today()
False
>>> datetime.datetime.strptime(date_created, '%Y-%m-%d').date() == datetime.date.today()
True
类方法 strptime()
将一个看起来像日期的字符串解析为 datetime.datetime
对象。然后,您只需要从中获取日期组件即可启用所需的比较。如果您有不同格式的日期字符串,请参阅 strftime() and strptime() Behavior。
如何实现用户只能在日记条目的 date_created
和 date_modified
字段相同时更新条目的功能?
这是我实现的。我将数据库中入口模型的 date_created 字段与 datetime.date.today()
.
数据模型
class DiaryEntry():
def __init__(self):
self.title = ''
self.body = ''
self.date_modified = None
self.date_created = datetime.date.today()
def save(self, current_user_email):
# insert data into db
query = "INSERT INTO entries (owner_id, title, body, date_created, date_modified) \
VALUES ((SELECT user_id from users where email ='{}'), '{}', '{}', '{}','{}')" \
. format(current_user_email,
self.title,
self.body,
self.date_created,
self.date_modified
)
db.execute(query)
方法
def update_diary_entry(self,entry_id):
query = "select * from entries where entry_id='{}'".format(entry_id)
result = db.execute(query)
entry = result.fetchone()
data = request.get_json()
date_created = entry[4]
if date_created == datetime.date.today():
query = "update entries set title='{}',body='{}' where entry_id='{}'"\
.format(data['title'], data['body'], int(entry_id))
db.execute(query)
return {'message': 'diary entry updated succesfully','date':date_created}, 406
else:
return {'message': 'diary entry can only be updated on the day it was created'}, 406
我目前正在收到第二个 return 声明。我可能做错了什么?
您似乎有 date_created
作为 update_diary_entry()
中的字符串 (str)。这将导致与 Python datetime.date
对象的无效比较,除非您将字符串解析为相同类型:
>>> import datetime
>>> date_created = '2018-07-29'
>>> date_created == datetime.date.today()
False
>>> datetime.datetime.strptime(date_created, '%Y-%m-%d').date() == datetime.date.today()
True
类方法 strptime()
将一个看起来像日期的字符串解析为 datetime.datetime
对象。然后,您只需要从中获取日期组件即可启用所需的比较。如果您有不同格式的日期字符串,请参阅 strftime() and strptime() Behavior。