Pull to refresh

Инструмент django-command

Level of difficultyMedium
Reading time4 min
Views2.1K

Django-command - инструмент командной строки, который позволяет выполнять часто используемые команды при разработке проектов на фреймворке Django. Данный инструмент помогает повысить эффективность разработки и упростить рабочие процессы, связанные с веб-приложениями на Django.

Для кого это статья?

Статья предназначена для разработчиков проектов на фреймворке Django, которые хотят повысить эффективность своей работы.

Введение

При разработке проектов на фреймворке Django мне часто приходилось выполнять однотипные рутинные задачи: создание миграций, применения миграций, обновление локалей и так каждый раз при изменении моделей базы данных. Приходилось запоминать большой набор команд и их аргументов. Конечно все команды я хранил в одном файле и тащил этот файл из проекта в проект. С ростом количество проектов для меня это стало не удобным каждый раз заглядывать в файл в поиске нужной команды. Мне хотелось более удобный инструмент, который позволил бы оптимизировать мою работу. В просторах интернета я не нашел подходящее решение этой проблемы. В результате я решил создать свой собственный инструмент django-command, который бы предоставлял удобный интерактивный интерфейс, а также с возможностью запуска из консоли без интерактива.

Установка и использование

Для установки django-command можно использовать pip:

pip install django-command

Существует несколько способов запуска команд:

  1. В терминале наберите django-command, после этого появится в интерактивном режиме список доступных команд для выполнения, отметьте через пробел какие команды выполнить. Отмеченные команды будут выполняться по порядку выбора.

    (venv) PS .\> django-command
    [?] Select 1 or more commands:
     > [ ] create_local                   [1] Creating locales (ru, en)
       [ ] update_local                   [2] Updating and compiling locales
       [ ] collect_static                 [3] Assembling static files in the STATIC_ROOT folder
       [ ] make_migrations                [4] Creating migrations
       [ ] make_migrations_app            [5] Creating the first migration for the application
       [ ] make_empty_migrations_app      [6] Create a blank migration for the application. Used to add default data to the database table
       [ ] migrate                        [7] Applying migrations [--db_label default]
       [ ] create_superuser               [8] Creating a user with superuser rights
       [ ] create_app                     [9] Creating an application
       [ ] run_server                     [10] Running a project on a port number, or ipaddr:port (default "127.0.0.1:8000") [--port 127.0.0.1:8000]
       [ ] install_requirements           [11] Install all dependencies for a project from a file (default "requirements.txt")
       [ ] print_requirements             [12] Automatically generates all the necessary dependencies for the project, and also allows you to save this list to a file (default "requirements.txt") [--save_in_file requirements.txt]
  2. Команды можно выполнять по их названию или по номеру.

    django-command make_migrations migrate
    # or with argument
    django-command make_migrations migrate -db default
    # or
    django-command 4 7

Описания команд и аргументов

Для просмотра списка доступных команд нужно ввести в терминале.

(venv) PS .\> django-command -h
usage: django-command [-h] [-db DB_LABEL] [-s SAVE_IN_FILE] [-p PORT] [-v] commands [commands ...]   

CLI tool that allows you to run commonly used commands when developing Django projects.              

positional arguments:                                                                                
 commands              commands to run: create_local, update_local, collect_static, make_migrations,
                       make_migrations_app, make_empty_migrations_app, migrate, create_superuser,   
                       create_app, run_server, install_requirements, print_requirements             

optional arguments:
 -h, --help            show this help message and exit
 -db DB_LABEL, --db_label DB_LABEL
                       database label for "migrate" command
 -s SAVE_IN_FILE, --save_in_file SAVE_IN_FILE
                       save to file for "print_requirements" command
 -p PORT, --port PORT  port number, or ipaddr:port for "run_server" command
 -v, --version         show program's version number and exit

Команды в django-command

Аналог команды в django

create_local

django-admin makemessages -l

Создает файлы локалей (ru, en) для интернационализации.

update_local

django-admin makemessages -a

django-admin compilemessages

Обновление и компиляция локалей.

collect_static

python manage.py collectstatic

Собирает статические файлы в папке STATIC_ROOT.

make_migrations

python manage.py makemigrations

Создает миграции для всех приложений.

make_migrations_app

python manage.py makemigrations {app_name}

Создает миграции для конкретного приложения.

make_empty_migrations_app

python manage.py makemigrations --empty {app_name}

Создает пустую миграцию для конкретного приложения.

migrate

python manage.py migrate

Применение миграций. Обновляет схему базы данных.

create_superuser

python manage.py createsuperuser

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

create_app

python manage.py startapp {app_name}

Создает новое приложение внутри проекта Django.

run_server

python manage.py runserver

Запускает веб-сервер для разработки, а также обслуживает статические файлы.

install_requirements

pip install -r {file_name}

Установит все зависимости для проекта из файла (по умолчанию «requirements.txt»)

print_requirements

pip freeze > {file_name}

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

Как видно из таблицы приходилось запоминать много разных команд и их аргументов для полноценного создания проектов на Django. А теперь достаточно только запомнить и набрать 1 команду.

django-command

Теперь рутинная задача: создание миграций, применения миграций, обновление локалей выглядит так.

django-command make_migrations migrate update_local
# или
django-command 4 7 2

Заключение

Инструмент django-command, является эффективным способом повышения продуктивности разработки проектов на фреймворке Django. Он поможет автоматизировать рутинные задачи, повысит общую эффективность разработки и снижает вероятность ошибок.

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

Буду рад обратной связи. В комментариях напишите, а как Вы решаете данную задачу. И какие команды Вы используете у себя в Django проектах.

Tags:
Hubs:
Total votes 6: ↑6 and ↓0+11
Comments10

Articles