Команды Django django-admin с пояснениями

django-admin — это инструмент командной строки, предоставляемый фреймворком Django, и ключевой инструмент для управления проектами Django.

Создаёте ли вы новый проект, запускаете сервер разработки или выполняете миграции базы данных — django-admin является незаменимым инструментом.

Чтобы просмотреть все команды, предоставляемые django-admin, можно выполнить:

django-admin help

Вывод будет выглядеть примерно так:

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    optimizemigration
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

Подробное объяснение часто используемых команд django-admin

1. Создание нового проекта

django-admin startproject 项目名称

Эта команда создаст новый проект Django в текущем каталоге, включая базовую структуру проекта:

  • manage.py:Скрипт управления проектом
  • project_name/:Корневой каталог проекта
    • __init__.py
    • settings.py: Файл настроек проекта
    • urls.py: Конфигурация маршрутов URL
    • wsgi.py: Точка входа приложения WSGI

2. Создание нового приложения

Хотя обычно используетсяmanage.pyдля создания приложений, но вы также можете использовать django-admin:

django-admin startapp 应用名称

Это создаст новое приложение Django, включая:

  • migrations/: Каталог файлов миграции базы данных
  • __init__.py
  • admin.py: Конфигурация административного бэкенда
  • apps.py: Конфигурация приложения
  • models.py: Определение модели данных
  • tests.py: Тестовый код
  • views.py: Функция-представление

3. Проверка конфигурации проекта

django-admin check

Эта команда проверит, есть ли в вашем проекте Django ошибки конфигурации, включая:

  • Правильность определений моделей
  • Правильность конфигурации URL
  • Правильность настроек шаблонов
  • Конфигурация статических файлов и т. д.

4. Миграции базы данных

Django использует систему миграций для управления изменениями схемы базы данных:

django-admin makemigrations  # 创建迁移文件
django-admin migrate        # 应用迁移到数据库

5. Создание суперпользователя

django-admin createsuperuser

Эта команда проведёт вас через создание суперпользователя, который сможет получить доступ к сайту администратора Django.


Распространённые команды django-admin

КомандаФункцияПример
startprojectСоздать новый проект Djangodjango-admin startproject myproject
startappСоздать новое приложение Djangodjango-admin startapp myapp
runserverЗапустите сервер разработкиpython manage.py runserver
makemigrationsСгенерировать файлы миграций базы данныхpython manage.py makemigrations
migrateВыполнить миграции базы данныхpython manage.py migrate
createsuperuserСоздать учетную запись администратораpython manage.py createsuperuser
shellЗапустить интерактивную оболочку Djangopython manage.py shell
collectstaticСобрать статические файлы (для производственной среды)python manage.py collectstatic
testЗапустить модульные тестыpython manage.py test

django-admin startproject (создать проект)

Базовый синтаксис:

django-admin startproject <项目名称> [目标目录]

Описание параметра:

ПараметрФункцияПример
<project_name>Обязательно, имя проекта (будет создан каталог с тем же именем)django-admin startproject mysite
[target directory]Необязательно, указать каталог проектаdjango-admin startproject mysite /opt/myproject
--templateИспользовать пользовательский шаблон проектаdjango-admin startproject --template=my_template.zip mysite
--extensionУкажите расширение файла (например,.py, .txt)django-admin startproject --extension=py,txt mysite
--nameУкажите шаблон имени файла (например,Dockerfile, README.md)django-admin startproject --name=Dockerfile mysite

Пример

django-admin startproject mysite  # Создать проект по умолчанию
django-admin startproject mysite /opt/code  # Указать каталог
django-admin startproject --template=https://example.com/my_template.zip mysite  # Использовать удалённый шаблон

django-admin startapp (создать приложение)

Базовый синтаксис:

django-admin startapp <应用名称> [目标目录]

Описание параметра:

ПараметрФункцияПример
<app_name>Обязательно, имя приложения (будет сгенерированоmodels.py, views.pyи т.д.)django-admin startapp blog
[target directory]Необязательно, укажите каталог приложенияdjango-admin startapp blog /opt/myapp
--templateИспользовать пользовательский шаблон приложенияdjango-admin startapp --template=my_app_template.zip blog

Пример

django-admin startapp blog  # Создать приложение по умолчанию
django-admin startapp blog /opt/myapp  # Указать каталог
django-admin startapp --template=my_template.zip blog  # Использовать шаблон

django-admin runserver (запуск сервера разработки)

Базовый синтаксис:

python manage.py runserver [IP:端口]

Описание параметра:

ПараметрФункцияПример
[IP:端口]Необязательно, укажите IP-адрес и порт для прослушивания (по умолчанию127.0.0.1:8000)python manage.py runserver 0.0.0.0:8080
--noreloadОтключить автоматическую перезагрузку (используется при отладке)python manage.py runserver --noreload
--insecureПринудительная раздача статических файлов (режим non-DEBUG)python manage.py runserver --insecure

Пример

python manage.py runserver  # Запуск по умолчанию (127.0.0.1:8000)
python manage.py runserver 0.0.0.0:8000  # Разрешить внешний доступ
python manage.py runserver 8080  # Изменить только порт

django-admin migrate (миграция базы данных)

Базовый синтаксис:

python manage.py migrate [应用名] [迁移版本]

Описание параметра:

ПараметрФункцияПример
[app name]Необязательно, укажите приложение для миграцииpython manage.py migrate blog
[migration version]Необязательно, укажите номер версии миграцииpython manage.py migrate blog 0002
--fakeПометить миграции как применённые (без фактического изменения базы данных)python manage.py migrate --fake
--fake-initialПомечается как выполненная, только если таблица уже существуетpython manage.py migrate --fake-initial

Пример

python manage.py migrate  # Применить все неприменённые миграции
python manage.py migrate blog  # Мигрировать только приложение blog
python manage.py migrate blog 0002  # Мигрировать до конкретной версии

Другие распространённые команды

КомандаФункцияПример
createsuperuserСоздать пользователя-администратораpython manage.py createsuperuser
shellВойти в Django Shell (с поддержкой ORM)python manage.py shell
testЗапустить тестовые примерыpython manage.py test blog
collectstaticСобрать статические файлы (развёртывание в производственной среде)python manage.py collectstatic
Другие расширения