Я использую Python Peewee ORM для работы с базой данных MySQL. Peewee предоставляет объект под названием «fn», который позволяет вам выполнять определенные типы вызовов к базе данных. Один из тех вызовов, которые я хочу сделать, следующий:
Blocks.select(Blocks, fn.Count(Blocks.height))
Где Blocks — это таблица в моей базе данных, в которой есть столбец с именем height. Этот синтаксис взят прямо из документации Peewee, а именно
User.select(
User, fn.Count(Tweet.id))
находится здесь http://peewee.readthedocs.org/en/latest/peewee/querying.html. Обратите внимание, что у меня также есть следующие строки в верхней части моего файла python.
import peewee
from peewee import *
from peewee import fn
Но когда я запускаю этот код, он не работает и выдает это
<class '__main__.Blocks'> SELECT t1.`height`, t1.`hash`, t1.`time`, t1.`confirmations`, t1.`size`, t1.`version`, t1.`merkleRoot`, t1.`numTX`, t1.`nonce`, t1.`bits`, t1.`difficulty`, t1.`chainwork`, t1.`previousBlockHash`, t1.`nextBlockHash`, Count(t1.`height`) FROM `blocks` AS t1 []
Так что на самом деле это просто распечатка имен столбцов, которые возвращаются запросом выбора.
Какой код peewee я должен написать, чтобы вернуть количество строк в таблице? Я сожалею об использовании peewee, потому что это делает простые запросы невероятно сложными для поиска правильного синтаксиса.