## 📋 Полный список команд для экзамена (без интернета)

### 🚀 Запуск и работа с проектом


pip install django
pip install whitenoise
pip install pillow
pip install django-admin-interface
pip install django-colorfield



```bash
# Создать виртуальное окружение
python -m venv venv

# Активировать виртуальное окружение (Windows)
venv\Scripts\activate

# Активировать виртуальное окружение (Mac/Linux)
source venv/bin/activate

# Запустить сервер разработки
python manage.py runserver

# Запустить сервер на другом порту (если 8000 занят)
python manage.py runserver 8080

# Запустить сервер с привязкой ко всем IP (для доступа с других устройств)
python manage.py runserver 0.0.0.0:8000
```

### 📦 Работа с базой данных

```bash
# Создать миграции (на основе изменений в models.py)
python manage.py makemigrations

# Создать миграции для конкретного приложения
python manage.py makemigrations beauty

# Применить миграции к базе данных
python manage.py migrate

# Посмотреть SQL запросы миграции (без применения)
python manage.py sqlmigrate beauty 0001

# Откатить последнюю миграцию
python manage.py migrate beauty zero

# Создать суперпользователя (админ панель)
python manage.py createsuperuser
```

### 🗄️ Работа со статикой

```bash
# Собрать все статические файлы в одну папку
python manage.py collectstatic

# Очистить статику перед сборкой
python manage.py collectstatic --clear

# Собрать без подтверждения
python manage.py collectstatic --noinput
```

### 🔧 Полезные команды для отладки

```bash
# Открыть интерактивную оболочку Django
python manage.py shell

# Посмотреть все URL маршруты
python manage.py show_urls  # (если установлен django-extensions)

# Проверить проект на ошибки
python manage.py check

# Посмотреть все команды
python manage.py help
```

### 💾 Работа с данными (фикстуры)

```bash
# Экспорт данных из БД в JSON (для переноса)
python manage.py dumpdata beauty > data.json

# Экспорт конкретной модели
python manage.py dumpdata beauty.Service > services.json

# Импорт данных из JSON в БД
python manage.py loaddata data.json

# Импорт конкретного файла
python manage.py loaddata services.json
```

### 🧪 Тестирование

```bash
# Запустить все тесты
python manage.py test

# Запустить тесты конкретного приложения
python manage.py test beauty

# Запустить конкретный тест
python manage.py test beauty.tests.YourTestClass
```

### 🔄 Кэширование (работа с кэшем)

```python
# В Django shell (python manage.py shell)

# Очистить весь кэш
from django.core.cache import cache
cache.clear()

# Проверить наличие ключа
cache.has_key('my_key')
cache.get('my_key')

# Установить значение в кэш
cache.set('my_key', 'my_value', 60)  # на 60 секунд

# Удалить конкретный ключ
cache.delete('my_key')
```

### 📝 Работа с проектом

```bash
# Создать новое приложение
python manage.py startapp newapp

# Вывести версию Django
python manage.py --version

# Посмотреть настройки проекта
python manage.py diffsettings
```

### 🚨 Экстренные команды (когда всё сломалось)

```bash
# Удалить БД и создать заново (ВНИМАНИЕ: удалит все данные!)
del db.sqlite3  # Windows
rm db.sqlite3   # Mac/Linux

# Заново создать все таблицы
python manage.py migrate

# Создать суперпользователя заново
python manage.py createsuperuser

# Удалить все миграции (кроме __init__.py)
# Вручную удалить папку migrations в каждом приложении
# Затем заново:
python manage.py makemigrations
python manage.py migrate
```

### 📋 Шпаргалка: типичный порядок действий при ошибках

```bash
# 1. Если не запускается сервер
python manage.py check

# 2. Если проблемы с БД
python manage.py makemigrations
python manage.py migrate

# 3. Если не грузится статика
python manage.py collectstatic --clear
python manage.py collectstatic --noinput

# 4. Если кэш мешает
python manage.py shell
from django.core.cache import cache
cache.clear()
exit()

# 5. Если вообще всё плохо
python manage.py flush  # Очистить БД (оставит структуру)
```

### 💡 Полезные сниппеты для кода

```python
# В models.py - получить все записи
MyModel.objects.all()
MyModel.objects.filter(field=value)
MyModel.objects.get(id=1)

# В views.py - кэширование страницы
from django.views.decorators.cache import cache_page
@cache_page(60)

# В шаблоне - кэширование фрагмента
{% load cache %}
{% cache 60 block_name %}
    <!-- ваш код -->
{% endcache %}

# В settings.py - настройка кэша (простая)
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'TIMEOUT': 300,
    }
}
```

### ⚡ Быстрые команды для экзамена (запомнить 5 самых важных)

```bash
python manage.py runserver          # 1. Запустить проект
python manage.py makemigrations      # 2. Создать миграции
python manage.py migrate             # 3. Применить миграции  
python manage.py createsuperuser     # 4. Создать админа
python manage.py collectstatic       # 5. Собрать статику
```

### 🎯 Если забыли команду

```bash
# Показать все доступные команды
python manage.py help

# Показать справку по конкретной команде
python manage.py help runserver
```

---

**Сохраните этот файл на флешку или распечатайте!** Удачи на экзамене! 🍀