13 июня 2017 в 19:00
Существует множество вариантов разделения настроек Django под режим разработки. Сейчас вынесу свой вариант. Быть может он встречается где-то еще, я не смотрел. Основным критерием для меня являлось отсутствие лишних наследований на production режиме, возлагая эти нюансы на dev.
Для начала создадим файл devsettings.py рядом с settings.py и запишем в нем одну строчку:
Таким образом наш новый файл полностью копирует содержимое settings.py. Теперь мы можем определить настройки settings.py под production, а в devsettings.py переопределить их для developer режима.
Содержание
- 1. Включаем DEBUG
- 2. Отключаем кэширование
- 3. Включение просмотра статики
- 4. Файл запуска dev
- 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 дня я борюсь.
Источник: