GAE: управление разработкой и производственными версиями моего приложения - PullRequest
4 голосов
/ 01 июня 2011

Есть много вещей, которые мне нужно сделать перед загрузкой моего производственного приложения в GAE.Это становится очень утомительным и подверженным ошибкам, и я хотел бы узнать некоторые передовые практики, как справляться со следующими требованиями, и если некоторые инструменты уже существуют для этого:

Среда разработки и тестирования на моей локальной машине:хочу использовать отладочные версии моих файлов javascript, Production: хочу минимизировать файлы, а также объединить их в 1. Например: с учетом этого кода в mytemplate.html

<script src="script1.js"></script>
<script src="script2.js"></script>
<script src="script3.js"></script>
<script src="script4.js"></script>
<script src="script5.js"></script>

Требуется: какой-то процесс для автоматической минимизациифайлы, объедините их в 1 и отредактируйте приведенный выше код так, чтобы он стал:

<script src="mytemplate.js"></script>

Разработка и тестирование: используйте settings.dev.py
Производство: используйте settings.py

Какой-то способ автоматического переключения на settings.py при запуске в производство.то есть я не могу вручную редактировать все файлы py и изменять все ссылки на settings.dev.py на settings.py.Является ли файл конфигурации рекомендуемым способом сделать это?Я изменяю настройку в своем файле config.py перед отправкой в ​​производство, а затем остальная часть кода выбирает правильные settings.py?Кроме того, в python файл конфигурации является файлом .py, или это обычно что-то еще, то есть, какова норма?(в .net мы обычно используем xml для хранения конфигураций)

1 Ответ

2 голосов
/ 02 июня 2011

Таким образом, вы можете определить, работает ли ваше приложение в dev или production следующим образом:

import os
DEV = os.environ['SERVER_SOFTWARE'].startswith('Development')

Передайте этот bool вместе с вашими шаблонами Django и напишите условные выражения, если вы хотите, чтобы поведение менялось:

{% if DEV %}
  <script src="script1.js"></script>
  <script src="script2.js"></script>
  <script src="script3.js"></script>
  <script src="script4.js"></script>
  <script src="script5.js"></script>
{% else %}
  <script src="mytemplate.js"></script>
{% endif %}

Чтобы выполнить минификацию в последнюю минуту, напишите собственный сценарий развертывания, который сначала выполняет все задачи перед развертыванием, а затем вызывает appcfg.py update. Если вы хотите выполнить развертывание, запустите оболочку развертывания вместо прямого вызова appcfg.py.

Вы можете обрабатывать файл settings.py несколькими различными способами. Используйте один файл настроек с условиями для каждой среды, импортируйте разные файлы настроек в зависимости от среды или поменяйте местами производственный файл как часть оболочки развертывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...