Недавний
Большинство просмотренных
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Использование PyInstaller и Cython для создания исполняемого файла Python
- Уменьшение времени отклика на запросы на странице Flask SQLAlchemy веб-сайта
- Подключение к службе на хосте Docker из контейнера Docker
- Использование UUID вместо Integer Autoincrement Primary Keys с SQLAlchemy и MariaDb
- SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
Теги
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDatabaseDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMultilanguageMultiprocessingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubeКоммутатор базы данных с HAProxy и HAProxy Runtime API
13 августа 2024 0
Peter
Один из моих проектов нуждался в базе данных высокой доступности (разве мы все не хотим этого...). Это означает (асинхронную) репликацию и многоузловую настройку. Существует несколько решений, об этом я напишу в другом посте. В этих сценариях у нас есть несколько копий основной базы данных, и когда возникает проблема, мы переключаемся с одной базы данных на другую. Чтобы сделать такое переключение ...
Docker Swarm rolling updates
7 июля 2024 0
Peter
Некоторое время назад я писал, что лучше всего перейти на вариант Kubernetes , а теперь этот пост посвящен Docker Swarm. Да, я все еще использую Docker Swarm , потому что у меня есть проект, в котором он используется. Недавно я перенес разработку с Docker на Docker Swarm, в основном потому, что с Docker Swarm вы изучаете основы оркестровки контейнеров, так почему бы не изучить это во время ...
Скрытие первичных ключей базы данных UUID вашего веб-приложения
29 марта 2024 0
Peter
Создавая веб-приложение, вы должны быть очень осторожны, чтобы не выдать слишком много информации. Если вы используете (автоинкремент) Integer IDs в своей базе данных, то, вероятно, вы уже раскрываете слишком много информации. Некоторые примеры. Integer user_id позволяет легко догадаться, сколько новых регистраций вы получаете каждый день. С помощью Integer order_id легко угадать, сколько ...
Don't Repeat Yourself (DRY) с Jinja2
20 февраля 2024 0
Peter
Я пробовал некоторые вещи с Jinja2, создал небольшое приложение Flask и подумал, почему бы не поделиться этим. Я хотел добиться того, чтобы поместить все названия страниц в один файл шаблона. Как и в случае с Python, когда пишешь много кода, нужно быть осторожным, чтобы не повторяться с Jinja2. Вы не успеете оглянуться, как у вас окажется множество файлов шаблонов, содержащих одну и ту же информацию. ...
SQLAlchemy, PostgreSQL, максимальное количество строк для user
5 февраля 2024 0
Peter
У вас есть приложение с несколькими user , использующее SQLAlchemy и PostgreSQL , и вы хотите ограничить количество строк на user определенной таблицы. Например, в каждом user может быть не более пяти сообщений. Вам нужна такая операция, как: Заблокировать таблицу Подсчитать количество сообщений в user Если число меньше пяти: Добавить новый пост Разблокировать таблицу Элс: Разблокировать ...
Показать значения в динамических фильтрах SQLAlchemy
18 января 2024 0
Peter
При работе с SQLAlchemy я часто использую динамические фильтры в своих запросах. Это означает, что я начинаю со списка с некоторыми условиями и добавляю дополнительные условия, которые зависят от других переменных.Здесь приведен запрос со статическим фильтром: # query with static filter product_colors = ['white'] stmt = sa.select(Product).\ where(sa.and( Product.category.in_(my_categories), ...
Безопасная передача данных с помощью шифрования Public Key и pyNaCl
2 декабря 2023 0
Peter
Это небольшая заметка о безопасной передаче данных между двумя людьми. Для этого мы используем пакет Python pyNaCl для генерации закрытых и открытых ключей, а также для шифрования и расшифровки данных. Я также добавил пакет Python keyring для хранения private_key и public_key. На самом деле это не так сложно. Для этого мне понадобился базовый класс, и вот я им делюсь. Возможно, вы найдете его полезным. Как ...
rqlite: альтернатива dist с высокой степенью готовности и SQLite
17 октября 2023 1
Peter
В одном из проектов я использую базу данных SQLite . Данные не являются критическими, их можно перезагрузить в любое время. Тем не менее, я не хочу, чтобы часть приложения перестала реагировать на временную недоступность базы данных SQLite . Я искал быструю, более или менее отказоустойчивую базу данных, а также distributed, чтобы можно было реплицировать некоторые модули чтения. При поиске в Интернете ...
Нужно ли переносить Docker Swarm на Kubernetes?
15 сентября 2023 0
Peter
Когда читаешь в Интернете сообщения о том, что Docker Swarm умер, становится страшно. У меня работает Docker Swarm и мне это нравится, это просто, когда ты уже используешь Docker. Какие есть альтернативы? Мы все время читали, что есть только один выход - перейти на Kubernetes и забыть обо всем остальном. Я был на полпути миграции с Docker на Docker Swarm и хотел узнать, стоит ли мне продолжать ...
Получить список видеозаписей YouTube о человеке
7 сентября 2023 0
Peter
Несколько дней назад мне задали вопрос: Можно ли скачать все публичные видео YouTube человека, которые были загружены в период с 2020 года по сегодняшний день. Общее количество видеороликов было около двухсот. И нет, я не смог получить доступ к учетной записи YouTube этого человека. В этом посте я использую YouTube API для загрузки необходимых метаданных из видеороликов, по одному элементу на ...
От Docker-Composer к Docker Swarm: Configs
29 августа 2023 0
Peter
У вас есть приложение, состоящее из нескольких проектов Docker-Compose, и вы используете Docker-Compose для сборки, запуска и развертывания. Теперь вы хотите сделать еще один шаг вперед и переместить некоторые из проектов Docker-Compose на другой сервер. Наиболее очевидным выбором для этого, который стоит попробовать в первую очередь, является Docker Swarm. Вы изучаете еще несколько команд Docker ...
Docker-Композиция проектов с одинаковыми именами сервисов
25 августа 2023 0
Peter
Если у нас есть идентичные проекты Docker-Compose с одинаковыми именами сервисов, соединенные сетью Docker , то мы должны убедиться, что обращаемся к нужному сервису. В сети Docker существует два способа доступа к сервису: По имени сервиса По имени контейнера У меня есть несколько проектов Docker-Compose, которые практически идентичны, каждый проект находится в своей директории и имеет ...
X Автоматизация и скраппинг веб-сайтов с помощью Selenium
11 августа 2023 0
Peter
Когда вы хотите получить данные из Web, вы должны знать, что вы делаете. Не стоит перегружать целевой сервер запросами. Если вы делаете это из одного места, например IP address, вы можете получить (временный) бан. Если вы хотите скрести большие объемы, рассмотрите возможность использования специализированных сервисов, таких как ZenRows, ScrapFly, WebScrapingAPI, ScrapingAnt и т.д. Они dist распределяют ...
Aiohttp с пользовательскими DNS-серверами, Unbound и Docker
13 июля 2023 0
Peter
Использование aiohttp выглядит так просто, но это не так. Это сбивает с толку. Документация 'Client Quickstart' начинается со следующего: Примечание Не создавайте сессию для каждого запроса. Скорее всего, вам нужна сессия для каждого приложения, которое выполняет все запросы вместе. В более сложных случаях может потребоваться сессия для каждого сайта, например, одна для Github, а другая ...
Вернуть только значения списка записей из FastAPI
6 июля 2023 0
Peter
В Python все является классом, что означает, что данные модели похожи на словарь. Но у словарей есть ключи. И когда вы возвращаете список из многих словарей из FastAPI, размер данных, ключей и значений, обычно в два раза больше, чем размер значений. Больший размер и большее время означает, что наше приложение не очень эффективно, медленнее, чем нужно. Это также означает, что оно потребляет больше ...
Предотвращение спуфинга IP address с помощью фильтрации обратного пути
15 июня 2023 0
Peter
Этот пост посвящен системному администрированию и не имеет никакого отношения к Python. Тогда зачем размещать это здесь? Потому что я думаю, что многие, как и я, управляют одним или несколькими веб-серверами и иногда сталкиваются с этими проблемами. В предыдущем посте я писал, что мой сервер ISPConfig Debian подвергался сканированию портов и т.д. и что оказалось, что 95% всех запросов приходили ...
Сбор и блокировка 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 . Обратите внимание, что я использую ...