Команды 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__.pysettings.py: Файл настроек проектаurls.py: Конфигурация маршрутов URLwsgi.py: Точка входа приложения WSGI
2. Создание нового приложения
Хотя обычно используетсяmanage.pyдля создания приложений, но вы также можете использовать django-admin:
django-admin startapp 应用名称
Это создаст новое приложение Django, включая:
migrations/: Каталог файлов миграции базы данных__init__.pyadmin.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 | Создать новый проект Django | django-admin startproject myproject |
startapp | Создать новое приложение Django | django-admin startapp myapp |
runserver | Запустите сервер разработки | python manage.py runserver |
makemigrations | Сгенерировать файлы миграций базы данных | python manage.py makemigrations |
migrate | Выполнить миграции базы данных | python manage.py migrate |
createsuperuser | Создать учетную запись администратора | python manage.py createsuperuser |
shell | Запустить интерактивную оболочку Django | python 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 /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 /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 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 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 |