Недавний
- Сбор и блокировка IP addresses с помощью ipset и Python
- Как отменить задания с помощью Python Асинхронный ввод-вывод (AsyncIO)
- Запустите команду Docker внутри контейнера Docker Cron
- Создание Captcha с Flask, WTForms, SQLAlchemy, SQLite
- Multiprocessing, блокировка файлов, SQLite и тестирование
- Отправка сообщений в Slack с помощью chat_postMessage
Большинство просмотренных
- Flask Удовлетворительный запрос API проверка параметров запроса с помощью схем Маршмэллоу
- Использование UUID вместо Integer Autoincrement Primary Keys с SQLAlchemy и MariaDb
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Подключение к службе на хосте Docker из контейнера Docker
- Использование PyInstaller и Cython для создания исполняемого файла Python
- SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
Теги
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2Log fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisSecurity testingSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWerkzeugWheelsWTFormsСбор и блокировка IP addresses с помощью ipset и Python
21 мая 2023 0
Peter
Если у вас есть сервер, подключенный к Интернету, вы, вероятно, видели это в своих журналах: множество незаконных внешних запросов, пытающихся получить доступ к вашим службам.
Я обслуживаю сервер Debian и использую Fail2Ban для предотвращения вторжений. Стандартная практика, установил, настроил и забыл. Поскольку сервер стал падать в определенное время, я решил присмотреться повнимательнее.
Я в ...
Как отменить задания с помощью Python Асинхронный ввод-вывод (AsyncIO)
2 мая 2023 0
Peter
Для одного проекта я использовал AIOHTTP для проверки ответов многих удаленных веб-сайтов, URL. URL-адреса поступали из списка. Этот список может содержать дубликаты.
Все было хорошо, пока я не заметил, что некоторые ответы также имели код состояния: HTTP-429 'Слишком много запросов'. Какова бы ни была причина, перегрузка, безопасность, мы хотим вести себя дружелюбно и не хотим вызывать идентичные ...
Запустите команду Docker внутри контейнера Docker Cron
18 апреля 2023 0
Peter
При использовании Docker ваше приложение обычно состоит из нескольких контейнеров Docker . Часто вы хотите запускать сценарии внутри этих контейнеров в определенные моменты времени, например, каждые пять минут, раз в час, раз в день.
Здесь на помощь приходит планировщик заданий Cron, и есть несколько вариантов, как это сделать. В этой заметке я создаю отдельный контейнер Cron и использую команду ...
Создание Captcha с Flask, WTForms, SQLAlchemy, SQLite
10 апреля 2023
Peter
В прошлом я написал некоторый код (только для текста) Captcha для сайта Flask . Это обновление. Здесь я использую пакет Pypi для генерации изображения. Кроме того, я добавил кнопку обновления изображения Captcha .Вы можете попробовать код ниже, это форма подписки (на рассылку). Хотя это решение Captcha для сайта Flask , его можно преобразовать в сервер Captcha . Обратите внимание, что я использую ...
Multiprocessing, блокировка файлов, SQLite и тестирование
30 марта 2023 0
Peter
Я работал над проектом с SQLAlchemy и PostgreSQL. Для нескольких таблиц я хотел ограничить количество строк на user, и сделал это, добавив функцию проверки PostgreSQL и триггер.
Ручное тестирование показало, что все работает нормально, но что если user запустит несколько процессов и добавит строки в одно и то же время? Я добавил 'pg_advisory_xact_lock', но будет ли это действительно работать? ...
Отправка сообщений в Slack с помощью chat_postMessage
23 марта 2023 0
Peter
Для одного проекта я уже отправлял сообщения по электронной почте, но теперь мне захотелось также отправлять сообщения в Slack. Конечно, мы используем Python Slack SDK.
Документацию можно найти на странице: Python Slack SDK - Web Client. В этом посте я создаю простой класс SlackAPI с собственным классом исключений SlackError.
Создание и настройка нового приложения Slack
Мы будем отправлять наши ...
PostgreSQL резервное копирование с Docker SDK для Python
9 марта 2023 0
Peter
Это небольшая заметка о резервном копировании базы данных Dockerized PostgreSQL . Для доступа к базе данных мы обычно запускаем на хосте сценарий Bash с такими командами, как:
docker exec -t <container> bash -c '<command>'
В этом посте мы заменим наш сценарий Bash на сценарий Python . Почему? Потому что мы знаем Python и программирование на Bash может отнимать много времени. Хотя ...
Предотвращение отправки дубликатов сообщений в удаленную систему
21 февраля 2023 0
Peter
Много раз приложения должны отправлять сообщения в удаленную систему. В идеальном мире нам приходится иметь дело только со счастливым потоком: не происходит никаких плохих вещей, таких как исключения, ошибки.
К сожалению, мир не идеален. Помимо ошибок программирования, соединения могут не работать, системы баз данных могут не работать, удаленные системы могут не работать. Простой вопрос - не могли ...
Politician Translator с Spacy и Negate
11 января 2023 0
Peter
Это короткое сообщение. Мы постоянно слышим, что говорят политики, но чаще всего они имеют в виду противоположное. Например, если политик говорит, что он снизит налоги, то налоги вырастут. Если политик говорит, что у него не было отношений с этой женщиной, то ... И так далее.
И я подумал, почему бы не сделать Politician Translator в Python? В этом посте я начну с результатов. Код приведен в конце.
...
От монолитного кода к сервисам с помощью RabbitMQ и Pika
8 января 2023 0
Peter
Этот пост посвящен использованию RabbitMQ в вашем приложении Python . Если вы уже используете Rabbit, вы, вероятно, не найдете ничего полезного в этой заметке. Почему пост о RabbitMQ? Потому что у меня есть приложение, использующее его. Оно работает уже год, и я решил поделиться своим опытом.
В этом посте мы преобразуем монолитное приложение в сервисы, развязанные очередями. Также я буду говорить ...
Приложение Flask , показывающее stdout и stderr фонового задания
19 декабря 2022 0
Peter
В проекте Flask мне нужно было запустить фоновое задание, а точнее команду, запущенную в терминале (Linux), и показать ее вывод, stdout и sterr, в реальном времени в окне браузера. Вы можете найти несколько решений в интернете, и это просто еще одно. Я также использую некоторый код, который я нашел в Интернете, см. ссылки ниже.
Это решение использует:
мультипроцессинг, для запуска нового процесса ...
Агрегирование и tail Docker журналов контейнеров с помощью Docker SDK для Python
11 декабря 2022 0
Peter
Проблема: У вас есть приложение Docker , состоящее из множества (микро) сервисов (контейнеров), и вы хотите отслеживать все эти контейнеры на предмет ошибок.
Сервисы в основном представляют собой скрипты Python , которые используют стандартный модуль логирования Python и печатают сообщения в stdout (и stderr):
... DEBUG ...
... INFO ...
... ERROR ...
При использовании стандартного драйвера ...
Python регистрация приложений с Docker
5 декабря 2022 0
Peter
Когда вы разрабатываете программное приложение, вероятно, первое, что вы настроите, это ведение журнала. Сначала только в консоль, но вскоре вы добавите файлы журналов.
Несколько лет назад я начал использовать Docker для разработки и производства. При переходе на Docker я не сделал много изменений. Файлы журнала приложения по-прежнему находятся в каталоге журнала на томе Docker . Это означает, ...
LogLineFollower: Следите за строками растущего файла журнала
9 сентября 2022 0
Peter
Я искал способ обработки строк лог-файла в процессе его роста. В интернете я нашел несколько фрагментов и пакетов, но не совсем то, что мне было нужно. Поэтому я решил написать свой собственный.
После того как я написал первую версию, я поискал снова и нашел еще несколько пакетов. Но, посмотрев на описание, код и проблемы, я решил остановиться на собственном коде. Не может быть так сложно создать ...
Подключение к службе на хосте Docker из контейнера Docker
11 августа 2022 0
Peter
Если у вас возникла какая-то проблема с Docker и вы ищете информацию в Интернете, вы почти наверняка наткнетесь на вопрос: Как я могу подключиться к localhost? Люди имеют в виду следующее: как я могу подключиться к службе на хосте Docker из контейнера Docker . Когда я начал использовать Docker , у меня тоже были проблемы с этим.
Я использую Linux, Ubuntu, и когда наконец host.docker.internal ...
AIOHTTP: Обнаружение тайм-аута DNS с пользовательскими серверами имен
27 июля 2022 0
Peter
При использовании AIOHTTP для получения данных с веб-страницы в Интернете вы, вероятно, используете тайм-аут для ограничения максимального времени ожидания.
Если вы используете доменное имя, то IP-адрес должен быть разрешен. Без использования отдельного преобразователя вы зависите от базовой операционной системы. Любые ошибки распространяются на ваше приложение.
Я не хотел такой зависимости и указал ...
Flask Message Flashing: Заменить Bootstrap Alerts на Toasts
25 июля 2022 0
Peter
Когда у вас есть приложение Flask с Bootstrap, вы, вероятно, используете Bootstrap Alerts , чтобы показать flashed messages. Я использую их, и они работают, но я не очень доволен. По умолчанию они выглядят некрасиво и в большинстве случаев занимают много места на экране. И вы действительно хотите, чтобы уведомления типа "вы вошли в систему" были Bootstrap Alert , которые должны закрываться user? ...
SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
16 июля 2022 1
Peter
Хотя документация SQLAlchemy ORM очень хороша, иногда она запутанна и не содержит четких примеров, но, возможно, это только у меня. Что касается Cascade Delete, я нахожу следующий текст из документации SQLAlchemy умопомрачительным:
Значение по умолчанию параметра отношения 'cascade' - 'save-update, merge'. Типичным альтернативным значением для этого параметра является либо все, либо более ...
SQLAlchemy PostgreSQL: Добавить второй BigInteger Primary Key
28 мая 2022 0
Peter
Предположим, мы используем UUID Primary Keys в нашем проекте. Это прекрасно работает, но есть несколько таблиц с миллионами записей. Мы знаем, что операции SELECT и INSERT с таблицами UUID на базе Primary Key могут быть намного медленнее по сравнению с таблицами Integer на базе Primary Key . Мы хотим, чтобы эти огромные таблицы имели только BigInteger Primary Keys и связывали их с другими ...
Перенаправление на исключение в Flask с помощью decorator
7 мая 2022 0
Peter
В приложении Flask обычно реализуются глобальные обработчики исключений. Во многих случаях этого достаточно. Но что, если вам нужно больше контроля?
В одном проекте я подключался к API и хотел, чтобы несколько маршрутов, использующих API , перенаправляли на "стартовую" страницу в случае ошибки API , с соответствующим сообщением, конечно. Я реализовал это с помощью обработчика исключений 'redirect_decorator', ...