Ответы пользователя по тегу Flask
  • Возможно ли переопределить Model.query в SQLAlchemy?

    @nirvimel
    class CustomQuery(Query):
        def __new__(cls, *args, **kwargs):
            if args and hasattr(args[0][0], "is_deleted"):
                return Query(*args, **kwargs).filter_by(is_deleted=False)
            else:
                return object.__new__(cls)
    session = scoped_session(sessionmaker(query_cls=CustomQuery))
    Источник.

    В качестве альтернативного варианта можно прямо в БД создать соответствующий VIEW:
    CREATE VIEW actual_places AS
        SELECT *
        FROM places
        WHERE is_deleted = FALSE;
    Ответ написан
    Комментировать
  • Какая будет безопасность сайта запущенного на порту 5000?

    @nirvimel
    Трюки, типа изменения номера порта при помощи SRV, не особо влияют на безопасность.
    Безопасность HTTP зависит не от номера порта, а от вебсервера, вашего вебприложения (отчасти от используемого фреймворка) и от грамотного администрирования самого сервера (если речь не о shared hosting).
    В самом windows может и нет ничего плохого (при грамотной настройке), но если это - ваш домашний десктоп, то открывать с него что-то пита HTTP наружу в сеть - плохая идея. По поводу безопасности windows есть несколько общих советов:
    1. Закройте файрволом весь входящий трафик, HTTP-порт добавьте в исключение, это отрежет возможность лазить во вашим shared folders с других машин в локалке, зато сильно повысит безопасность, открытой в сеть, машины.
    2. Создайте отдельного пользователя системы, сложите все что относится к сайту в его домашнюю папку и запускайте вебсервер и СУБД только под ним.
    3. Регулярно делайте бекапы сайта и БД в какое-то место, куда не имеет доступа пользователь под которым запущен вебсервер, а лучше настройте специальную софтину, уотрая будет делать это автоматически по расписанию.
    Ответ написан
    Комментировать
  • Работа с железом через web на python?

    @nirvimel
    каждый запрос к странице производит прямой запрос к устройству на порту

    Довольно плохое решение.
    Во-первых, веб-сервер и работающая с железом программа должны запускаться в разных процессах.
    Во-вторых, для коммуникации между процессами можете взять что-то типа pyzmq причем со стороны веб-сервера это нужно делать асинхронно, например, с использованием gevent + gevent-zeromq
    Ответ написан
    Комментировать