angle-up arrow-clockwise arrow-counterclockwise arrow-down-up arrow-left at calendar card-list chat check envelope folder house info-circle pencil people person person-plus phone plus question-circle search tag trash x
10 октября 2020 возле Peter
post main image
Возможность запуска асинхронных задач из вашего веб-приложения во многих случаях является обязательным условием. Одним из способов достижения этого является использование Celery. В интернете есть много статей и приведены некоторые примеры. Мне очень понравились записи Miguel Grinberg о Celery. Очень понятно, спасибо Miguel. Но пост Miguel и большинство других статей - это всего лишь введение. ...
Подробнее
30 сентября 2020 возле Peter
post main image
Я разработал один сайт Flask на Docker , но через некоторое время, когда мой код стал более стабильным, я захотел использовать такую же установку для других сайтов. Для одного сайта я сделал копию, потому что он должен был работать вчера. Но на самом деле я хотел поделиться всем кодом и некоторыми шаблонами. Конечно, каждый сайт имеет свой собственный статический каталог, каталог логов, шаблоны ...
Подробнее
22 сентября 2020 возле Peter
post main image
Это короткая заметка о том, что я хотел сделать давным-давно и для чего я, наконец, нашел некоторое время. На самом деле это был не случай TLT;DR (Слишком долго; не читал), а скорее что-то вроде TLT;DR (Слишком мало времени; не читал). Как вы вероятно знаете, файл Docker .dockerignore используется для предотвращения попадания определенных файлов и каталогов в ваш Docker image. Файл Docker .dockerignore ...
Подробнее
20 августа 2020 возле Peter
post main image
Проблема: у меня есть сайт, который отправляет электронные письма. Письма (мета) хранятся в базе данных перед отправкой в Postfix MTA. Каждое письмо, которое отправляет веб-сайт, имеет уникальный message-id, что-то вроде 159766775024.77.9154479190021576437@peterspython.com. Я хочу проверить, действительно ли письма отправляются, и добавить эту информацию в записи базы данных электронной почты (мета). Postfix ...
Подробнее
25 июля 2020 возле Peter
post main image
Тестирование - это тяжелая работа. Она полностью отличается от создания или модификации функциональности. Я знаю, я также разработал компьютерное оборудование, интегральные схемы, системы тестирования аппаратуры. Я написал тесты для CPUs, компьютерные продукты, разработал тестовые системы. С аппаратным обеспечением нельзя допускать ошибок. Ошибки могут стать концом Вашей компании. Добро пожаловать ...
Подробнее
26 июня 2020 Обновленный 25 июля 2020 возле Peter
post main image
Я решил временно перенести акцент с разработки программного обеспечения для моей CMS / Блога на более мелкий проект. Основная причина в том, что я надеялся узнать что-то новое о Python , что будет полезно. Я всегда хотел иметь свою собственную клиентскую программу IMAP . Возможно, на мой выбор также сильно повлияла некоторая неприятность клиента IMAP Dekko2 для Ubuntu Touch, операционной системы моего ...
Подробнее
17 июня 2020 возле Peter
post main image
При поиске чего-то в интернете вы иногда натыкаетесь на статью, которая прекрасно описывает то, что вы уже много лет рассказываете друзьям, коллегам. Независимо от того, являетесь ли вы издателем, разработчиком программного обеспечения, рекламной компанией, эта статья Тревора Джима - обязательная для прочтения. Вот первые строки: Интернет-реклама - это фирменный город 28 февраля 2017 года Если ...
Подробнее
17 июня 2020 возле Peter
post main image
Использование исключений в Python выглядит просто, но это не так. Наверное, перед написанием любого кода Python , но TL;DR. следует изучить работу с исключениями и обработку исключений. В интернете есть примеры, к сожалению, большинство из них очень тривиальны. Во всяком случае, я изучил это и придумал код, которым, как мне показалось, я с вами поделился. Оставьте комментарий, если у вас есть предложения. Что ...
Подробнее
29 мая 2020 возле Peter
post main image
Существует множество типов векторных иконок. В этой заметке я смотрю только на иконки SVG, и ограничиваюсь навигационными иконками, иногда называемыми также иконками интерфейса. Эти иконки не только красиво выглядят на сайтах, но и имеют цвет и масштаб, как шрифты. И они очень функциональны. Представьте себе кнопку с текстом ''Правка''. Замените этот текст карандашом, и вы получите больше места на ...
Подробнее
12 мая 2020 возле Peter
post main image
На этом сайте запущен Flask. Он использует DispatcherMiddleWare для запуска приложения фронтэнда и приложения администрирования. В документах Flask указано, что приложения Flask в этом случае полностью изолированы друг от друга. Это верно, но часто между этими приложениями есть много кода, которым мы хотим поделиться. Вещи, которыми мы хотим поделиться Оба приложения используют одну и ту же ...
Подробнее
26 апреля 2020 возле Peter
post main image
Этот вебсайт использует Flask, (обычный) SQLAlchemy с Alembic для миграций и MariaDb. Если вы их не используете, то этот пост, скорее всего, не то, что вы ищете. В предыдущем посте я написал, почему многие сайты должны использовать UUID Primary Keys вместо Integer Primary Keys. Даже если у вас есть высокопроизводительный сайт, то, вероятно, только несколько таблиц отвечают за эту производительность. ...
Подробнее
16 апреля 2020 возле Peter
post main image
У вас есть сайт, и он отлично работает. Но вы заметили, что некоторые посетители пытаются испортить ваши формы. Они приходят с определенных IP-адресов. Также есть боты, которые сканируют ваш сайт. Некоторые из них необходимы, но другие должны держаться подальше. Разве вы не ненавидите это? Ненавижу. В прошлом я однажды написал модуль, который возвращал не очень приятный ответ очень медленно, байт-байт, ...
Подробнее
9 апреля 2020 возле Peter
post main image
Мы все знаем Integer Autoincrement Primary Key. Работает отлично, многие программы делают это таким образом. Это быстро. Но у него также есть ограничения. Альтернативой Integer Autoincrement Primary Key является UUID (Universally Unique IDentifier) Primary Key. UUID - 128-битное число. Оно может быть представлено, например, строкой: 05390f2b-48e8-45c7-8ae4-08272dc69122 или шестнадцатеричную ...
Подробнее
24 марта 2020 возле Peter
post main image
Flask горячий. Все любят Flask. Думаю, основная причина в том, что так просто начать с Flask. Вы создаете virtual environment, копируете-вставляете несколько строк кода из какого-нибудь примера, указываете ваш браузер на 127.0.0.1:5000 и вот ваша страница. Затем вы немного взломаете шаблон Jinja и получаете красивую страницу. Вы даже можете запустить Flask на Raspberry Pi, не правда ли, это ...
Подробнее
10 марта 2020 возле Peter
post main image
Проблема: клиент хочет приложение с определенной функциональностью и хочет этого вчера. Что вы делаете, так это ищете решение plug-and-play, библиотеки и/или расширения. Вы говорите клиенту, что можете это сделать, клиент счастлив, вы это делаете. Например, вы берете Wordpress, выбираете и настраиваете некоторые плагины. Проблема решена или нет? Да, проблема решена, но как долго? Через несколько месяцев ...
Подробнее
29 февраля 2020 возле Peter
post main image
Я никогда не проверял, работает ли защита CSRF в моем приложении Flask , на этом сайте. Включено ли оно по умолчанию? Из документации по расширению Flask_WTF: Любое представление, использующее FlaskForm для обработки запроса, уже получает защиту CSRF . И из текста сообщения Miguel Grinberg 'Cookie Security for Flask Applications': Если вы работаете с вашими веб-формами с расширением ...
Подробнее
22 февраля 2020 возле Peter
post main image
При работе над системой комментариев я впервые столкнулся с проблемой наличия нескольких форм WTForms на одной странице. На каждой странице также есть форма поиска, но это не форма POST . Он делает GET. Система комментариев использует две формы: Comment form Comment reply form Форма комментария находится непосредственно под элементом содержимого, постом в блоге или страницей, форма ответа ...
Подробнее
15 февраля 2020 возле Peter
post main image
Я надеялся сказать вам сегодня, что вы можете прокомментировать записи в блоге этого сайта уже сейчас. Это означало бы, что я завершил первое внедрение системы комментариев. К сожалению, я наткнулся на некоторые проблемы, да, конечно, я программист, и одна из них связана с TextAreaField. Мне просто нужна была простая расширенная версия WTForm TextAreaField, просто добавьте поле счетчика символов ...
Подробнее
8 февраля 2020 возле Peter
post main image
Теперь, когда у меня есть посты в блоге, страницы и контактная форма, я решил реализовать комментарии для постов в блоге и страниц. Не только плоские комментарии, но и потоковые, также называемые вложенными комментариями. Несколько месяцев назад я читал об этом и мне очень понравилась статья Miguel Grinberg: Реализация пользовательских комментариев с помощью SQLAlchemy. Так же часто Miguel начинается ...
Подробнее
30 января 2020 возле Peter
post main image
Когда вы начинаете с Flask , вы читаете немного о Application Context, TL;DR. Не знаю, как вы, но я, конечно, не до конца вас понял. Что такое приложение, что такое current_app, в чем разница, вы просто начинаете программировать свое приложение. Все время в фоновом режиме возникает эта странная шумиха: что же такое Application Context ... Затем в определенный момент при использовании класса, который ...
Подробнее

Добро пожаловать

Этот сайт является многоязычным CMS / Блог я строю с Python, фреймворк Flask и SQLAlchemy. Развертывается на моем сервере ISPConfig3 (Nginx + Mariadb) с использованием Docker, который также используется для разработки. Подробнее об этом сайте.