google-app-engine – GAE:管理我的应用的开发和生产版本

在将我的生产应用程序上传到GAE之前,我需要做很多事情.它变得非常繁琐且容易出错,我想知道一些最佳实践如何处理以下要求,并且如果已经存在一些工具来执行此操作:

我的本地机器上的开发和测试环境:想要使用我的javascript文件的调试版本,生产:想要缩小文件并将它们连接成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来存储配置)

最佳答案 因此,您可以检测您的应用程序是在dev或生产中运行,如下所示:

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.使用具有每个环境条件的一个设置文件,根据环境导入不同的设置文件,或作为部署包装器的一部分交换生产文件.

点赞