Skip to content

Repository files navigation

Flask Blog

Минималистичный блог на 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.

Version 0.3.0 Python 3.12 Flask 3.0.3 License: MIT

Репозиторий: 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 интеграция

License

MIT © Tomas

About

Minimal Flask 3.0.3 blog (Python 3.12): Discord-style auth, SQLite raw SQL, Bootstrap 5 monochrome UI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages