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"