Работа с железом через web на python?
каждый запрос к странице производит прямой запрос к устройству на порту
Довольно плохое решение.
Во-первых, веб-сервер и работающая с железом программа должны запускаться в разных процессах.
Во-вторых, для коммуникации между процессами можете взять что-то типа pyzmq причем со стороны веб-сервера это нужно делать асинхронно, например, с использованием gevent + gevent-zeromq
Если в планах графики то без БД вряд ли обойдетесь.
Вариант: 
- приложение выполняется периодически (как удобно - планировщик, сервис, etc.) и данные пишет в БД 
- WEB интерфейс отображает данные не с приложения а с БД
- при необходимости делаете кнопку на которую вешаете запрос актуальных данных (иногда может пригодиться).