2013-10-03 104 views
3

我希望我的代碼的某些部分在本地運行時不能運行。檢測Flask應用程序是否在本地運行

這是因爲我在本地安裝某些依賴項時遇到問題,無法運行代碼。

具體來說,memcache在本地不起作用。

@app.route('/some_url_route/') 
@cache.cached(timeout=2000) #ignore this locally 
def show_a_page(): 

如何將應用程序以某種方式忽略了代碼的高速緩存部以上,在本地運行?

+0

只是禁用運行緩存服務器。 – karthikr

回答

3

在我的代碼遵循Django的彼岸模式,有一個主settings.py文件我把我所有的設置英寸

在該文件中把DEBUG = True爲您的本地環境(和False用於生產),然後我用:

from settings import DEBUG 

if DEBUG: 
    # Do this as it's development 
else: 
    # Do this as it's production 
cache裝飾

因此包括類似的線,只有檢查的memcached如果DEBUG=False

然後,您可以如果您使用的燒瓶緩存所有這些設置加載到您的水壺設置爲在configuration documentation.

0

詳細說明,然後只需編輯設置:

if app.debug: 
    app.settings.CACHE_TYPE = 'null' # the cache that doesn't cache 

cache = Cache(app) 
... 

一個更好的辦法是對生產單獨的設置和發展。我使用的是基於類的方法:

class BaseSettings(object): 
    ... 

class DevelopmentSettings(BaseSettings): 
    DEBUG = True 
    CACHE_TYPE = 'null' 
    ... 

class ProductionSettings(BaseSettings): 
    CACHE_TYPE = 'memcached' 
    ... 

,然後導入合適的對象,當你設置你的應用程序(config.py是包含文件的文件名設置):

app.config.from_object('config.DevelopmentConfig') 
相關問題