Ответы пользователя по тегу Flask
  • Как использовать aiogram + flask (or only aiogram) для обработок платежей в боте телеграм?

    drygdryg
    @drygdryg
    Python-разработчик
    Flask — синхронный WSGI-фреймворк: в нём используется блокирующий ввод-вывод (I/O). aiogram — асинхронный фреймворк: в нём используется asyncio для неблокирующего I/O. Когда вы запускаете Flask-приложение (например, с помощью сервера Werkzeug), вы, говоря простыми словами, блокируете ввод-вывод асинхронному веб-серверу aiohttp, который используется "под капотом" aiogram для обработки входящих webhook-запросов.
    Вы можете запускать Flask-приложение в отдельном процессе (это лучше, чем в отдельном потоке), либо использовать для своего веб-хука сервер aiohttp вместо Flask c тем же aiohttp-приложением, которое использует aiogram, просто добавив в него нужные маршруты и хэндлеры. Пример такого совмещения с aiogram v3: https://github.com/aiogram/aiogram/blob/dev-3.x/ex...
    Ответ написан
    2 комментария
  • Как можно реализовать бан по устройству во flask?

    drygdryg
    @drygdryg
    Python-разработчик
    Если ваше приложение имеет фронтенд, который предназначен для запуска в веб-браузере, то лучше делайте отпечатки клиентов на стороне фронтенда средствами JavaScript, затем отправляйте их на бэкенд. Поищите информацию про способы снятия отпечатков браузера (browser fingerprinting) в сети. Обратите внимание на библиотеку FingerprintJS.

    Если нет возможности запускать JavaScript в браузере клиента либо вообще веб-сервис ориентирован не на браузер, то можно использовать различные техники снятия отпечатков на бэкенде. Для их реализации, скорее всего, потребуются техники низкоуровневого сетевого программирования (чтение необработанных заголовков HTTP-запроса и др.), возможно, выходящие за рамки стандартный возможностей Flask. Некоторые материалы по теме:
    https://lwthiker.com/networks/2022/06/17/http2-fin...
    https://github.com/CERT-Polska/hfinger

    Идентификация по IP-адресу — не очень надёжный способ, т.к. в сети может присутствовать множество клиентов с одним и тем же внешним IP-адресом (к примеру, если у интернет-провайдера используется NAT, либо в публичных сетях Wi-Fi).
    Ответ написан
  • Как получить JSON в FLASK?

    drygdryg
    @drygdryg
    Python-разработчик
    Создайте маршрут, который будет принимать POST-запросы и ожидать тело запроса в формате JSON. Например, так:
    from flask import Flask, request
    
    app = Flask(__name__)
    
    ...
    
    @app.route('/res', methods=['POST'])
    def res():
        form_data = request.get_json()
        ...
        return {'status': 'ok', 'error': False}
    Ответ написан
  • Почему не обновляется бд на heroku?

    drygdryg
    @drygdryg
    Python-разработчик
    На Heroku используется временная файловая система, не сохраняющая изменения, которые вносятся в файлы во время работы приложения. Используйте клиент-серверную СУБД вместо SQLite, например, PostgreSQL, если хотите разместить приложение на Heroku.
    Ответ написан
    1 комментарий