execute from command line sys argv

13 июня 2017 в 19:00

Существует множество вариантов разделения настроек Django под режим разработки. Сейчас вынесу свой вариант. Быть может он встречается где-то еще, я не смотрел. Основным критерием для меня являлось отсутствие лишних наследований на production режиме, возлагая эти нюансы на dev.

Для начала создадим файл devsettings.py рядом с settings.py и запишем в нем одну строчку:

Таким образом наш новый файл полностью копирует содержимое settings.py. Теперь мы можем определить настройки settings.py под production, а в devsettings.py переопределить их для developer режима.

1. Включаем DEBUG

Основная особенность developer режима — включенный debug. Для этого добавляем в наш файл строчку:

При установленном DEBUG = False в файле settings.py, мы получаем наше основное ответвление между режимами.

2. Отключаем кэширование

Чаще всего в production режиме включено кэширование, Однако, в developer режиме с ним работать невозможно. Для того, чтобы в developer режиме кэширование было отключено, нам надо удалить с переменной MIDDLEWARES нужные компоненты и удалить переменную CACHES.

Теперь, при запуске в developer режиме кэширование будет отключено.

3. Включение просмотра статики

На production серверах, как правило, django не занимается отдачей статики. Однако, в developer режиме нам не особо нужны дополнительные средства, аля Nginx или Apache, ведь Django в дебаг режиме может отдавать файлы сам. Однако, эта конфигурация на production сервере не нужна. Для этого нам надо переопределить стандартный файл urls.py. Создадим отдельный файл devurls.py рядом с urls.py со следующим содержимым:

То есть, файл devurls.py будет полностью копировать urls.py, но будет расширять его, добавляя в него дополнительные роутинги для отдачи статики. Теперь изменим наш devsettings.py, чтобы он принимал этот файл роутинга:

4. Файл запуска dev

Теперь мы имеем два набора конфигураций для dev и production режимов. Причем, для production режима ничего не поменялось, и он работает напрямую, но dev режим наследует production настройки и расширяет их. Таким образом мы можем дополнять конфигурацию нашего сервера как угодно, и она будет изменяться на обоих режимах.

Осталось только создать среду для запуска dev режима. Для этого создадим файл devmanage.py рядом с manage.py. Скопируем в него содержимое файла manage.py, изменим только инициализацию конфигурации DJANGO_SETTINGS_MODULE с project.settings на project.devsettings.

5. Запуск django

Теперь у нас есть две отдельные среды под dev и production режимы. Мы можем запуститься в режиме разработки

I am new to Python and Django. I am trying to install Django on Linux. Python version currently available on the server is Python 2.4.3 I installed Python 3.4.2 following the below steps:

The python correctly got installed. so when I do /root/python3/bin/python3.4 I get Python version 3.4.2 so i created a soft link -> ln -s /root/python3/bin/python3.4 python3

Now i created a virtualenv through

then i installed DJango:

Django got successfully installed

Created the project myproj:

myproj project successfully created:

now when i do python manage.py migrate i get error:

When i execute command python manage.py runserver i get error:

I tried all the solutions provided in all stackoverflow discussions.

Django version -> 1.9

I have not added any environment variable like PYTHONPATH or PATH. DO i need to do it. If yes please let me know what to set and how to set.

Requesting you all to please help in resolving this error so that i can start working on Django. Its almost more than 3-4 days i am struggling.

Я новичок в Python и Django. Я пытаюсь установить Django на Linux. версия Python в настоящее время на сервере Python 2.4.3 Я установил Python 3.4.2, следуя шагам, описанным ниже:

Питон правильно был установлен. поэтому , когда я /root/python3/bin/python3.4 могу получить Python версии 3.4.2 , так что я создал мягкую ссылку -> ln -s /root/python3/bin/python3.4 python3

Теперь я создал virtualenv через

Затем я установил Джанго:

Джанго был успешно установлен

Создан MYPROJ проекта:

MYPROJ проект успешно создан:

Теперь , когда я делаю python manage.py migrate я получаю ошибку:

Когда я выполнить команду python manage.py runserver я получаю сообщение об ошибке:

Я перепробовал все решения, предусмотренные во всех дискуссиях StackOverflow.

версия Джанго -> 1,9

Я не добавил переменные окружения как PYTHONPATH или PATH. Нужно ли мне делать это. Если да, дайте, пожалуйста, мне знать, что установить и как установить.

Запрос всех вас, пожалуйста, помощь в решении этой ошибки, так что я могу начать работать на Django. Его чуть ли не больше, чем 3-4 дня я борюсь.

Оцените статью