
Здравствуйте, ранее я писал об установке и запуске Django, сейчас же речь пойдет об автоматизации этого процесса.
Установка и пользование Virtualenv и Django не вызывает никакого труда, но уже через пару дней работы, я захотел автоматизировать некоторые процессы.
Каждый раз активировать Virtualenv напрягает, та и путь к проекту прописывать не хочется, иногда необходимо просто запустить сервер.
Шо делать? :D
Предлагаю написать скрипт на bash который бы помогал выполнять эту рутинную работу :)
Получилось следующее:
dj root - переносит нас в корневой каталог с проектами
dj new pr_name - создает проект, устанавливает Virtualenv(в env), Django, создает djcode
dj remove pr_name - удаляет проект по имени
dj quit - деактивация проекта и выход в /home/username/
dj act - активация текущего проекта
dj run - активация и запуск текущего проекта
dj pr_name act - активация проекта по имени
dj pr_name run - активация и запуск проекта по имени
Ниже представлен код:
#!/bin/bash DJANGO_PROJECT_ROOT_FOLDER_PATH="/home/datysho/django_projects" DJANGO_PROJECT_FOLDER_NAME="djcode" VIRTUALENV_FOLDER_NAME="env" if [ "$1" = "root" ]; then cd $DJANGO_PROJECT_ROOT_FOLDER_PATH elif [ "$1" = "new" ]; then cd $DJANGO_PROJECT_ROOT_FOLDER_PATH mkdir $2 cd $2 virtualenv --no-site-packages $VIRTUALENV_FOLDER_NAME source $VIRTUALENV_FOLDER_NAME/bin/activate pip install django django-admin.py startproject $DJANGO_PROJECT_FOLDER_NAME elif [ "$1" = "remove" ]; then sudo rm -rf $DJANGO_PROJECT_ROOT_FOLDER_PATH/$2 elif [ "$1" = "quit" ]; then deactivate cd else if [ "$1" != "act" ] && [ "$1" != "run" ]; then cd $DJANGO_PROJECT_ROOT_FOLDER_PATH/$1 if [ "$2" = "act" ]; then source $PWD/$VIRTUALENV_FOLDER_NAME/bin/activate fi if [ "$2" = "run" ]; then source $PWD/$VIRTUALENV_FOLDER_NAME/bin/activate python $PWD/$DJANGO_PROJECT_FOLDER_NAME/manage.py runserver fi else if [ "$1" = "act" ]; then source $PWD/$VIRTUALENV_FOLDER_NAME/bin/activate fi if [ "$1" = "run" ]; then source $PWD/$VIRTUALENV_FOLDER_NAME/bin/activate python $PWD/$DJANGO_PROJECT_FOLDER_NAME/manage.py runserver fi fi fiДля корректной работы скрипта вам достаточно прописать значения трем переменным, а именно путь к папке с проектами, желаемое название папки Virtualenv и проекта Django.
Код необходимо сохранить в любой файл(в примере ниже показано для файла django-project) и прописать следующие строки:
cp django-project /usr/local/bin #копируем файл в директорию исполняемых файлов chmod +x /usr/local/bin/django-project #делаем файл исполняемым alias dj='source django-project' #прописываем елиасЕсли у вас есть идеи, предложения, замечания - оставляйте оставляйте комменты, добавлю все шо душе угодно :D
P.S. alias прописанный в terminal'е живет только до конца сессии, для того чтобы это исправить нужно прописать его в соответствующий файл, для Ubuntu это ~/.bashrc
обычно для этих целей используюется две альтернативы, для олдскула и лентяев: GNU Make (Makefiles), для тру питонщиков - Doit! пекейдж :) попробуй
ОтветитьУдалить