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

Команда testserver

Команда testserver применяется для запуска легковесного тестового сервера Django, который предварительно загружает указанные фикстуры в тестовую базу данных. Это позволяет разработчикам быстро проверить работу приложения с заранее подготовленными тестовыми данными, не затрагивая основную базу. Команда полезна для отладки, демонстрации функционала или проверки корректности работы интерфейса в изолированной среде.

Основное отличие testserver от стандартной команды runserver заключается в том, что она создает временную тестовую базу данных, загружает в нее указанные фикстуры и запускает сервер. После остановки сервера тестовая база данных удаляется, что гарантирует чистоту эксперимента.

Синтаксис

python manage.py testserver [fixture1 fixture2 ...] [options]

Где fixture1 fixture2 ... - имена файлов фикстур (с расширением .json, .yaml или .xml), которые необходимо загрузить. Если фикстуры не указаны, команда запустит сервер без загрузки данных.

Параметры

Команда поддерживает стандартные опции Django, такие как --noinput для автоматического подтверждения действий, --verbosity для управления уровнем детализации вывода, --settings для указания файла настроек и другие. Также доступны параметры для управления адресом и портом сервера.

Пример . Фикстура

Для работы команды необходимо подготовить файл фикстуры в формате JSON. Рассмотрим пример фикстуры для модели Article:

[ { "model": "myapp.article", "pk": 1, "fields": { "title": "First article", "content": "Content of the first article", "status": "published", "created_at": "2026-01-01T10:00:00Z" } }, { "model": "myapp.article", "pk": 2, "fields": { "title": "Second article", "content": "Content of the second article", "status": "draft", "created_at": "2026-01-02T12:00:00Z" } } ]

Такую фикстуру можно сохранить в файл articles.json в директории fixtures вашего приложения.

Пример . Запуск

Запустим тестовый сервер с загрузкой фикстуры из файла articles.json:

python manage.py testserver articles.json

После выполнения этой команды Django создаст тестовую базу данных, применит все миграции, загрузит данные из фикстуры и запустит сервер. Вывод в консоли будет выглядеть примерно так:

"Creating test database for alias 'default'..." "Installing custom SQL..." "Installing indexes..." "Loaded 2 articles from fixtures." "Starting development server at http://127.0.0.1:8000/" "Quit the server with CONTROL-C."

Пример . С несколькими фикстурами

Можно загрузить несколько фикстур, указав их через пробел. Порядок загрузки важен: если фикстуры содержат связанные данные, они должны загружаться в правильном порядке:

python manage.py testserver categories.json articles.json comments.json

Пример . С указанием порта

Команда позволяет указать адрес и порт для запуска сервера, аналогично команде runserver:

python manage.py testserver articles.json 8080

Или с указанием адреса:

python manage.py testserver articles.json 0.0.0.0:9000

Пример . С опцией --noinput

Опция --noinput позволяет автоматически подтвердить все предупреждения без интерактивного ввода. Это полезно при автоматизации:

python manage.py testserver articles.json --noinput

Практический пример

Рассмотрим ситуацию, когда необходимо проверить работу API с тестовыми данными. Создадим фикстуру для модели Category и Article:

[ { "model": "myapp.category", "pk": 1, "fields": { "name": "Technology", "slug": "technology" } }, { "model": "myapp.article", "pk": 1, "fields": { "title": "Django testserver guide", "content": "Full guide about testserver command", "category": 1, "status": "published", "created_at": "2026-09-01T09:00:00Z" } } ]

Затем запускаем сервер и проверяем работу приложения:

python manage.py testserver fixtures/initial_data.json --verbosity=2

После запуска можно открыть браузер и перейти на http://127.0.0.1:8000, чтобы увидеть приложение в действии с загруженными тестовыми данными.

Смотрите также

  • команда runserver,
    которая запускает стандартный сервер разработки
  • команда test,
    которая запускает тесты Django-проекта
  • команда dumpdata,
    которая создает фикстуры из данных базы данных
  • команда loaddata,
    которая загружает фикстуры в основную базу данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить