Python. Как в db найти 10 наиболее часто встречающихся ip-адресов?

Есть архив с логами access_log.db

В этой таблице записи по посещениям веб-ресурса за несколько месяцев. Ресурс посещают как люди, так и роботы.

Описание объектов базы:

# File: db.py

from sqlalchemy import Column, DateTime, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class LogEntry(Base):
    __tablename__ = "logs"
    uid = Column(Integer, primary_key=True)
    ip_addr = Column(String(16))
    timestamp = Column(DateTime)

    def __init__(self, ip_addr, timestamp):
        self.ip_addr = ip_addr
        self.timestamp = timestamp

    def __str__(self):
        return "'%s' on %s" % (self.ip_addr, self.timestamp)

И есть задача - найти сколько запросов в базе с адреса 109.234.35.42?


Ответы (2 шт):

Автор решения: HackerU

Формируем выборку по условию и счетаем кол-во записей

result = LogEntry.query.filter_by(ip_addr='109.234.35.42').all()
print(len(result))
→ Ссылка
Автор решения: HackerU

server.py

@route("/api/getIP")
def getIP():
    result = s.query(LogEntry).filter(LogEntry.ip_addr == '109.234.35.42').all()
    print(len(result))
    return "Ok"
→ Ссылка