О
Этот сайт является многоязычным CMS / Блог, который я создаю с Python, framework Flask и SQLAlchemy. Он устанавливается на мой сервер ISPConfig3 (Nginx + Mariadb) с помощью Docker , который также используется для разработки. Сайт имеет регистрацию user , множество функций администратора, конфиденциальность и безопасность, поэтому это не маленький проект. Некоторые 'основные моменты':
Технический персонал
- Python 3 (3.7)
- Flask
- SQLAlchemy
- Мариадб
- Docker, docker-compose
- Bootstrap4
- Fontawesome
- Tinymce
- ISPConfig3
Развертывание
Шаги - разработка, staging и производство, все с использованием докера и docker-compose. При разработке используется сервер разработки Flask , staging и при производстве - сервер Gunicorn . Наконец, ISPConfig3 используется для управления доменом, базой данных и электронной почтой SMTP , Nignx конфигурируется как reverse proxy.
Конфиденциальность
Не ожидайте найти здесь решения типа использования подключаемых модулей CDNs, Google Analytics, Facebook и др. Конфиденциальность - одна из самых важных вещей в жизни. Хотя невозможно предотвратить слежку за нами и сбор наших ценных приватных данных, я считаю, что мы все должны приложить усилия, чтобы минимизировать это.
Безопасность
Безопасность - это всегда работа. Она начинается с проектирования безопасности, что также означает, что вы должны приложить много усилий для регистрации вещей. Есть такие замечательные инструменты, как OWASP ZAP и онлайн-сервисы, такие как securityheaders.com и detectify.com, которые могут помочь вам в определении уязвимостей.
Многоязычный
Хотя текст этого сайта написан на английском языке, он поддерживает несколько языков, используя расширение Flask-Babel . Тексты на других языках в данный момент переводятся машинным способом с использованием расширения DeepL API и иногда далеки от совершенства, но вы всегда можете отредактировать файлы messages.po .
Машинное обучение
Искусственный интеллект (AI) вторгается в нашу жизнь различными способами. Python - это язык, используемый при машинном обучении и глубоком изучении. Лично мне эти разработки не нравятся, потому что никто не может нести ответственность за принимаемые решения. Но AI также может помочь нам хорошими способами, например, порекомендовать другие новости в конце новости.
Еще: Kivy
Также искал Python GUI. Начал использовать tkinter , но вскоре обнаружил, что это имеет много ограничений для моей цели. Встретили Kivy и приступили к сборке первого приложения с ним. Вы также можете установить приложение Kivy на Android, но хотим ли мы поддерживать экосистему Android ? Также будет опубликована информация о моем проекте Kivy .
Что дальше?
В ближайшие месяцы я постараюсь задокументировать некоторые вещи, которые я сделал, чтобы это работало, например, использование SQLAlchemy без Flask-SQLAlchemy, избегая плохо обслуживаемых расширений Flask , миграции с использованием Alembic, минимизируя размер конфигураций Docker image, docker-compose .
Спасибо, Peter
Оставить комментарий
Комментируйте анонимно или войдите в систему, чтобы прокомментировать.
Комментарии (4)
Оставьте ответ
Ответьте анонимно или войдите в систему, чтобы ответить.
Hallo Peter,
Super dat je zoveel kennis deelt op je site, goed leesbaar en je kan er wat van leren! IK volg i.p.v. Kivi https://beeware.org/. Wel een complexe setup en tot nu toe nog weinig ontwikkelingen voor het web, meer voor APPS.
Groet,
Marcel
Hallo Marcel,
Nog bedankt voor je bericht. Beeware ziet er ook goed uit. Ben even gestopt met Kivy i.v.m. tijdgebrek. Was wel een leuk project om Flask op mijn OnePlus One met Ubuntu Touch te laten werken. Groeten, Peter
Muchas gracias por el blog, pero tienes publicado el código del blog?
Недавний
- Скрытие первичных ключей базы данных UUID вашего веб-приложения
- Don't Repeat Yourself (DRY) с Jinja2
- SQLAlchemy, PostgreSQL, максимальное количество строк для user
- Показать значения в динамических фильтрах SQLAlchemy
- Безопасная передача данных с помощью шифрования Public Key и pyNaCl
- rqlite: альтернатива dist с высокой степенью готовности и SQLite
Большинство просмотренных
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Использование UUID вместо Integer Autoincrement Primary Keys с SQLAlchemy и MariaDb
- Подключение к службе на хосте Docker из контейнера Docker
- Использование PyInstaller и Cython для создания исполняемого файла Python
- SQLAlchemy: Использование Cascade Deletes для удаления связанных объектов
- Flask Удовлетворительный запрос API проверка параметров запроса с помощью схем Маршмэллоу