разработка Flask приложения для учета тренировок с авторизацией
ASecurity
Создание веб-приложения на Flask с системой регистрации и авторизации пользователей, хранением данных в локальной базе SQLite и функционалом управления тренировками (создание, просмотр списка, просмотр деталей).
Installs into .claude/skills of the current project.
Are you the author of разработка Flask приложения для учета тренировок с авторизацией?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-flask-meta-skill-evloving)
---
id: "3f4c2ee1-e626-49f2-bdb1-e667b86ef838"
name: "Разработка Flask приложения для учета тренировок с авторизацией и SQLite"
description: "Создание веб-приложения на Flask с системой регистрации и авторизации пользователей, хранением данных в локальной базе SQLite и функционалом управления тренировками (создание, просмотр списка, просмотр деталей)."
version: "0.1.0"
tags:
- "Flask"
- "Python"
- "SQLite"
- "Authentication"
- "Workout Tracker"
triggers:
- "Flask приложение с авторизацией"
- "трекер тренировок на Flask"
- "Flask SQLite регистрация"
- "добавить страницу входа в Flask"
- "Flask SQLAlchemy workout app"
---
# Разработка Flask приложения для учета тренировок с авторизацией и SQLite
Создание веб-приложения на Flask с системой регистрации и авторизации пользователей, хранением данных в локальной базе SQLite и функционалом управления тренировками (создание, просмотр списка, просмотр деталей).
## Prompt
# Role & Objective
Ты эксперт по Flask. Твоя задача — создать или доработать приложение для учета тренировок с использованием Flask, Flask-SQLAlchemy, Flask-Login и локальной базы данных SQLite.
# Operational Rules & Constraints
1. **Технологии**: Используй Flask, Flask-SQLAlchemy, Flask-Login, Werkzeug.
2. **База данных**: Используй локальный файл SQLite (например, `sqlite:///database.db`).
3. **Модели данных**:
- `User`: id, email (unique), password.
- `Workout`: id, user_id (foreign key), name, program, day, exercises.
4. **Хеширование паролей**: Используй метод `pbkdf2:sha256` через `generate_password_hash` и `check_password_hash`.
5. **Роутинг и логика**:
- `/register`: Регистрация пользователя (GET/POST). Проверяйте уникальность email.
- `/login`: Вход пользователя (GET/POST). После успешного входа перенаправляй на главную страницу (`/`).
- `/logout`: Выход из системы.
- `/`: Главная страница (GET/POST). GET — отображает список существующих тренировок текущего пользователя. POST — обрабатывает форму создания новой тренировки и сохраняет её в БД.
- `/workout/<int:workout_id>`: Страница просмотра конкретной тренировки. Получает данные из БД по ID.
6. **Безопасность**: Защищай роуты, требующие авторизации, декоратором `@login_required`.
7. **Обработка параметров**: Проверяй наличие параметров в `request.args` перед преобразованием в `int()`, чтобы избежать ошибок `NoneType`. Обрабатывай исключения `ValueError`.
8. **Уникальность имен функций**: Убедись, что функции-обработчики для разных роутов имеют уникальные имена (например, `workout_list` и `workout_detail`), чтобы избежать ошибок `AssertionError` при маппинге эндпоинтов.
# Anti-Patterns
- Не используй устаревшие или некорректные методы хеширования (например, просто `sha256`).
- Не создавай роуты с одинаковыми именами функций.
- Не забывай вызывать `db.create_all()` внутри контекста приложения (`app.app_context()`) при запуске для инициализации таблиц.
## Triggers
- Flask приложение с авторизацией
- трекер тренировок на Flask
- Flask SQLite регистрация
- добавить страницу входа в Flask
- Flask SQLAlchemy workout app