2013-03-04 3 views
0

일부 데이터를로드해야하는 bottle.py 앱이 있는데, 일부 경로는 특정 경로에 따라 제공됩니다. (이것은 원칙적으로 memcached와 비슷하지만, 데이터가 그리 크지 않고 추가 복잡성을 원하지 않는다는 것을 제외하고는). 필자가 작성한 각 함수에서 액세스 할 수있는 전역 변수에 데이터를로드 할 수 있지만 이는 덜 깨끗한 것처럼 보입니다. . 초기화하는 동안 Bottle() 인스턴스에 일부 데이터를로드하는 방법이 있습니까?전역 변수를 사용하지 않고 여러 함수에서 액세스 할 수있는 bottle.py 앱에 데이터를로드하고 캐시하려면 어떻게해야합니까?

답변

1

bottle.default_app를 사용하여 수행 할 수 있습니다.
다음은 간단한 예입니다.

main.py (http://bottlepy.org/docs/dev/ 중고 샘플 코드)

import bottle 
from bottle import route, run, template 

app = bottle.default_app() 
app.myvar = "Hello there!" # add new variable to app 

@app.route('/hello/<name>') 
def index(name='World'): 
    return template('<b>Hello {{name}}</b>!', name=name) 

run(app, host='localhost', port=8080) 

some_handler.py

import bottle 

def show_var_from_app(): 
    var_from_app = bottle.default_app().myvar 
    return var_from_app 
관련 문제