📝 Django

Django Shell

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
85
🌱
Уровень
Начальный
🐦 💼 ✈️

Django Shell — интерактивная Python-консоль с загруженным окружением Django.

Запуск

python manage.py shell

Django автоматически загружает настройки, модели и все зависимости.

Основные операции

# Импортируем модели
from tasks.models import Task, Project
from django.contrib.auth.models import User

# Создание объектов
user = User.objects.create_user('testuser', password='pass123')
project = Project.objects.create(name='My Project')
task = Task.objects.create(title='First Task', owner=user, project=project)

# Чтение
Task.objects.all()
Task.objects.filter(status='todo')
task = Task.objects.get(pk=1)

# Обновление
task.status = 'done'
task.save()

# Удаление
task.delete()

Отладка запросов

from django.db import connection

Task.objects.all()
print(connection.queries)  # список выполненных SQL-запросов

Тестирование кода

# Проверить бизнес-логику
task = Task.objects.first()
print(task.get_status_display())
print(str(task))

# Проверить queryset
qs = Task.objects.select_related('project').filter(owner__username='testuser')
print(qs.query)  # показать SQL

IPython shell (расширенный)

pip install ipython
python manage.py shell  # автоматически использует IPython

Возможности: автодополнение, история, цвета, ? для справки.

shell_plus (django-extensions)

pip install django-extensions ipython
# settings.py
INSTALLED_APPS = [
    ...
    'django_extensions',
]
python manage.py shell_plus
# Автоматически импортирует ВСЕ модели!

При старте автоматически выполняется:

from tasks.models import Task, Project
from django.contrib.auth.models import User
# и все остальные модели из всех приложений

С IPython (рекомендуется)

python manage.py shell_plus --ipython

Возможности IPython: автодополнение Tab, ? и ?? для документации, цветная подсветка, история команд.

In [1]: Task?           # справка о классе
In [2]: Task.objects.   # Tab для автодополнения методов
In [3]: %sql Task.objects.all()   # отладка SQL
In [4]: %run script.py            # загрузить скрипт

Jupyter Notebook

python manage.py shell_plus --notebook

Открывает Jupyter Notebook с Django окружением — удобно для анализа данных.

Другие полезные команды django-extensions

python manage.py graph_models -a -o models.png   # граф всех моделей
python manage.py show_urls                         # все URL проекта
python manage.py runserver_plus                    # werkzeug debugger
python manage.py create_command myapp              # создать management команду

Выполнение скрипта

python manage.py shell < script.py
# или
python manage.py shell -c "from tasks.models import Task; print(Task.objects.count())"

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 134
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 85
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 74

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!