Минималистичный блог на Flask 3.0.3 (Python 3.12) с монохромным UI (Bootstrap 5), SQLite без ORM и session-аутентификацией в стиле Discord (username#0001).
Версия Flask зафиксирована под ограничения PythonAnywhere: Python 3.12 + Flask 3.0.3.
Репозиторий: discipleartem/flask_blog · Доска задач: Flask Blog
- Регистрация / вход без email:
name#discriminator(успех регистрации + password manager) - CRUD статей и плоских комментариев (автор — свои; admin — все)
- Markdown-редактор (EasyMDE), серверный рендер и preview; подсветка кода на витрине
- Один admin (
admin#0001, имяadminзарезервировано) - Светлая / тёмная тема (переключатель солнце / луна)
- Чистый SQL +
schema.sql+ самописные миграции - CI (GitHub Actions) и авто-деплой на PythonAnywhere
| Слой | Технология |
|---|---|
| Runtime | Python 3.12, .venv |
| Web | Flask 3.0.3 (pin для PythonAnywhere) |
| UI | Bootstrap 5.3 (mobile/tablet first); custom CSS/JS — только исключения |
| DB | SQLite3, raw SQL |
| Auth | Session cookie, werkzeug.security |
| Tests | unittest |
- Python 3.12
- Flask 3.0.3 (не обновлять до 3.1+ — ограничение хостинга)
- Git
git clone https://github.com/discipleartem/flask_blog.git
cd flask_blog
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e .
# запасной вариант: pip install -r requirements.txt
cp .env.example .env
# заполните SECRET_KEY, ADMIN_PASSWORD (и при необходимости DATABASE)source .venv/bin/activate
export FLASK_APP=wsgi:app
flask --app wsgi db-upgrade
flask --app wsgi run --debugОткройте http://127.0.0.1:5000/
Секреты — в .env (шаблон: .env.example). Уже экспортированные переменные окружения имеют приоритет над .env.
| Параметр | Значение по умолчанию |
|---|---|
| БД | instance/blog.sqlite3 |
| Admin | admin#0001 |
| Пароль admin | ADMIN_PASSWORD или admin |
source .venv/bin/activate
python -m unittest discover -s tests -v- AGENTS.md — вход для агента: тип задачи → docs → пути кода (экономия контекста)
- docs/README.md — индекс документации
- docs/ARCHITECTURE.md — модули, маршруты, схема, права
- docs/DEVELOPMENT.md — UI (Bootstrap 5), контент/Markdown, IronBee, проверки
- docs/DEPLOY.md — PythonAnywhere Beginner,
.env, auto-deploy при push вmain - docs/CHANGELOG.md — история изменений
| Ветка | Назначение |
|---|---|
main |
стабильный релиз |
dev |
интеграция |
MIT © Tomas