РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
795 of 818 menu

Команда 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,
    создаёт суперпользователя для админки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить