Команда shell
Команда shell запускает интерактивную оболочку Python
с уже настроенным окружением Django. Это позволяет
разработчикам выполнять произвольный Python-код,
взаимодействовать с моделями базы данных, тестировать
запросы и отлаживать логику приложения в реальном
времени. Оболочка автоматически загружает все
установленные приложения и делает доступными
настройки проекта.
Команда принимает необязательные аргументы для выбора конкретной оболочки (IPython, bpython или стандартная Python), а также позволяет выполнить код из указанного файла.
Синтаксис
python manage.py shell [options] [args]
Пример
Запустим стандартную оболочку Django и импортируем модель Article для выполнения запросов:
python manage.py shell
Внутри оболочки выполняем код:
>>> from myapp.models import Article
>>> articles = Article.objects.all()
>>> for article in articles:
... print(article.title)
...
"First article"
"Second article"
"Third article"
Пример
Используем опцию -i для выполнения кода из файла
перед входом в интерактивный режим:
python manage.py shell -i test_script.py
Создадим файл test_script.py со следующим содержимым:
from myapp.models import Article
from django.contrib.auth.models import User
# Create test user
user = User.objects.create_user(
username='testuser',
password='testpass123'
)
# Create test article
article = Article.objects.create(
title='Test article',
content='Test content',
author=user
)
print("Test data created successfully")
После запуска оболочки мы сразу перейдём в интерактивный режим с выполненным скриптом:
>>> article.title
"Test article"
>>> article.author.username
"testuser"
Пример
Запустим оболочку с использованием IPython для улучшенного интерфейса и автодополнения:
python manage.py shell -i ipython
В IPython доступны дополнительные возможности:
In [1]: from myapp.models import Article
In [2]: articles = Article.objects.filter(status='published')
In [3]: articles.count()
Out[3]: 5
In [4]: [a.title for a in articles]
Out[4]: ["First article", "Second article", "Third article", "Fourth article", "Fifth article"]
Смотрите также
-
команда
migrate,
применяет миграции к базе данных -
команда
makemigrations,
создаёт новые файлы миграций -
команда
runserver,
запускает локальный сервер разработки -
команда
createsuperuser,
создаёт суперпользователя для админки