0

Я пытаюсь написать функцию в python, которая удаляет записи в моем хранилище данных, которым больше пяти минут. Я сделать базу данных изображений котенка для класса, так что мой код выглядит примерно так:Как сравнить datetime datetime для datetime в python datetime?

class KittenImg(db.Model): 
    """Models a Gallery entry with kitten_name, image, and date.""" 
    kitten_name = db.StringProperty(multiline=True) 
    image = db.BlobProperty() 
    date = db.DateTimeProperty(auto_now_add=True) 

Пользователь загружает KittenImg и загружает в хранилище данных и возвращают просто отлично, но я не думаю, понять, какой формат будет возвращать значение kitten.date, и как я могу сравнить его с datetime.now() с использованием Python. Я пробовал несколько разных опций в документации модуля datetime для python, но я просто не думаю, что у меня есть достаточно хорошее представление о том, что я получаю, когда я звоню datetime.now(), и когда я прошу kitten.date.

Мне кажется, что, просмотрев документацию около трех часов, я до сих пор не знаю, как начать получать решение.

Я пытался что-то вроде:

now = datetime.now() 
then = kitten.date 
tdelta = now - then 

И:

now = total_seconds(datetime.now()) 
then = total_seconds(kitten.date) 
tdelta = now - then 

Но в каждом случае, это дает мне неавторизованный оператор для - знака.

Кажется, что datetime.timedelta() должно иметь какое-то отношение к этому, но я не имею абсолютно никакого представления о том, как использовать эту функцию даже после того, как она часами смотрела на нее.

Может кто-нибудь, пожалуйста, помогите мне: 1. Поймите, что происходит с модулем datetime лучше или 2. Дайте мне другой способ подойти к моей проблеме?

Спасибо

+0

Какие ошибки вы видите точно? Как вы импортировали 'datetime'? – mgilson

+0

mgilson, спасибо за помощь. На самом деле я ответил на свой вопрос, пытаясь воссоздать его, и опубликует ответ, как только позволит stackoverflow. – Mikael

ответ

0

Извините, я ответил на свой вопрос. Я, должно быть, делал что-то другое прошлой ночью, но сегодня вечером я начал работать. Это то, что я сделал:

for kitten in kittens: 
    then = kitten.date 
    now = datetime.datetime.now() 
    tdelta = now - then 

if tdelta.total_seconds() > 300: 
    kitten.delete() 

Если, вероятно, поставить статика FIVE_MIN вместо того, чтобы использовать магическое число 300, так что простите меня за это, но он работал.

Смежные вопросы