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. 1. Включаем DEBUG
  2. 2. Отключаем кэширование
  3. 3. Включение просмотра статики
  4. 4. Файл запуска dev
  5. 5. Запуск django

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 дня я борюсь.

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий