2011-06-01 97 views
4

在將我的生產應用上傳到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存儲配置)

回答

2

所以,你可以檢測開發或生產您的應用程序是否正在運行如下:

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

沿着你的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。對每個環境條件使用一個設置文件,根據環境導入不同的設置文件,或者將生產文件作爲部署包裝的一部分進行交換。

+0

然後webapp.WSGIApplication([...],debug = DEV) – 2011-06-02 04:09:58

+0

關於此問題的一些後續問題: 1.是否可以聲明一些全局模板可用的全局變量,而不必傳遞DEV變量,在每一個方法調用? – morpheus 2011-06-03 01:23:25

相關問題