Получать еженедельную информацию о транзакциях

У меня есть простой веб-сайт, созданный с помощью Flask и Peewee в качестве ORM, который аннотирует напитки, которые каждый сотрудник получает, а затем раз в неделю проверяет, кто что пьет, сколько и когда. У меня есть простая таблица с именем orders, которая выглядит так:

Заказы - идентификатор, продукт, пользователь, сумма, цена, дата

И то, что я хочу сделать, - это иметь простую страницу, где кто-то может проконсультироваться о том, что произошло с определенной даты до текущего дня (например, с 14-02 до сегодняшнего дня 21-02). Как мне сделать такой запрос в peewee?

1 ответ

Решение

Как человек, который никогда не слышал о Пиви до десяти минут назад, прими это с крошкой соли:

from datetime import date
from peewee import *

class DrinksModel(Model):
    class Meta:
        database = SqliteDatabase('drinks.db')

class Order(DrinksModel):
    id      = PrimaryKeyField()
    product = CharField()
    user    = CharField()
    amount  = IntegerField()
    price   = DecimalField()
    date    = DateField()

def get_orders_since(year, month=1, day=1):
    orders = Order.select().where(Order.date >= date(year, month, day))

for order in get_orders_since(2014, 2, 14):
    print(
        "{}: {} drank {} x {}"
        .format(order.date, order.user, order.amount, order.product)
    )

Если это дает ошибку, дайте мне знать, что она говорит, и мы пойдем оттуда.

Предлагаемые изменения:

  1. user поле, вероятно, должно стать внешним ключом в таблице User

  2. product поле должно стать внешним ключом в таблице Product, а price поле должно войти в таблицу Product

Другие вопросы по тегам