Недавний
- График временного ряда с Flask, Bootstrap и Chart.js
- Использование IPv6 с Microk8s
- Использование Ingress для доступа к RabbitMQ на кластере Microk8s
- Простая видеогалерея с Flask, Jinja, Bootstrap и JQuery
- Базовое планирование заданий с помощью APScheduler
- Коммутатор базы данных с HAProxy и HAProxy Runtime API
Большинство просмотренных
- Использование PyInstaller и Cython для создания исполняемого файла Python
- Уменьшение времени отклика на запросы на странице Flask SQLAlchemy веб-сайта
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Подключение к службе на хосте Docker из контейнера Docker
- Использование UUID вместо Integer Autoincrement Primary Keys с SQLAlchemy и MariaDb
- SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
Теги
AiohttpAJAXAlembicAlpineAPIApplication settingsAsyncBabelBeautifulSoupBootstrapCachingCaptchaCeleryColorsCompileCronCryptographyCSRF protectionCythonDatabaseDecoratorDeep LearningDeepLDispatcherMiddleWareDistributionDNSDockerDocker SwarmDocker-composeEmailExceptionsFastAPIFlaskGunicornIconsIMAPInternetISPConfigJavascriptJinja2KubernetesLog fileLoggingMachine LearningMariaDBMessage brokerMicrok8sMultilanguageMultiprocessingNetworkingPentestingPikaPostfixPostgreSQLProfilingPyInstallerpyOpenSSLPytestRabbitMQRedisrqliteSchedulingScrapingSecuritySecurity testingSeleniumSlackSQLAlchemyTestingThreadsTimezoneToastsUbuntu TouchUUIDWeb automationWerkzeugWheelsWTFormsYouTubeГрафик временного ряда с Flask, Bootstrap и Chart.js
16 декабря 2024 0
Peter
У нас уже есть приложение, созданное с использованием Flask и Bootstrap , и мы хотим добавить несколько графиков. В этом коротком посте мы создадим одну веб-страницу с графиком временного ряда, используя Flask, Bootstrap и Chart.js. Это тестовая страница, которую мы можем вставить и настроить для нашего приложения. Как обычно, я делаю это на Ubuntu 22.04 Desktop. Обзор Тестовая страница ...
Использование IPv6 с Microk8s
3 декабря 2024 0
Peter
Для части моего приложения, состоящего из нескольких проектов Docker-Compose, мне понадобился доступ к внешним сервисам, работающим только по протоколу IPv6. В предыдущих постах я писал, что уже перенес часть своего приложения с Docker на Microk8s (Kubernetes). Это та часть, которая требует доступа к внешним службам IPv6. Приложение Docker взаимодействует с приложением Microk8s с помощью NodePort ...
Использование Ingress для доступа к RabbitMQ на кластере Microk8s
20 ноября 2024 0
Peter
Некоторое время назад я сделал пост о переносе части приложения, содержащего RabbitMQ , работающего на Docker Swarm , на Microk8s. Мы использовали NodePort для доступа к кластеру Kubernetes RabbitMQ на хосте. Недавно я пересмотрел это и решил использовать Microk8s Ingress Controller для доступа к RabbitMQ.В этом посте мы предполагаем наличие подкластера RabbitMQ и сосредоточимся только ...
Простая видеогалерея с Flask, Jinja, Bootstrap и JQuery
28 октября 2024 0
Peter
У нас есть несколько камер, которые генерируют короткие ролики, когда что-то движется перед камерой. Все ролики, видео, попадают в одну систему. Для просмотра видео мы используем стандартные программы. Но теперь мы хотим поделиться этими видео с другими пользователями в нашей локальной сети, и мы не хотим копировать видеофайлы. Очевидное решение - выбрать и установить что-то вроде сервера видеогалереи. ...
Базовое планирование заданий с помощью APScheduler
19 октября 2024 0
Peter
Вы создали программу Python , например, для резервного копирования базы данных, и теперь хотите запускать ее каждый час или каждый день. Существует множество решений, и мы используем APScheduler, 'Advanced Python Scheduler', планировщик заданий, который отвечает многим требованиям. Для нашей задачи этот пакет может показаться излишеством, но давайте воспользуемся им здесь, а когда мы поймем основы, ...
Коммутатор базы данных с 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, размер данных, ключей и значений, обычно в два раза больше, чем размер значений. Больший размер и большее время означает, что наше приложение не очень эффективно, медленнее, чем нужно. Это также означает, что оно потребляет больше ...