0
我問另一個問題python flask how to pass a dynamic parameter to a decorator,我得到了答案。蟒蛇燒瓶API模塊如何將一個動態參數傳遞給裝飾器
我現在正在使用燒瓶,並使用flask-restful api,這將很容易建立寧靜的API 和我的代碼是這樣的。
class ShopCategoryListAPI(Resource):
#@redis_hash_shop(shop_id=LocalProxy(lambda: shop_id))
@redis_hash_shop(shop_id)
def get_shop(self, shop_id):
return Shop.query.get(shop_id)
def get(self, shop_id):
shop = self.get_shop(shop_id)
pass
我想一個shop_id
傳遞給裝飾之前,我從MySQL查詢店鋪,這裏是我的裝飾演示。
def redis_hash_shop(shop_id):
def fn_wrapper(fn):
def decorated_function(*args, **kwargs):
key = 'shop:{}'.format(shop_id)
if redis_store.exists(key):
return redis_store.hgetall(key)
else:
shop = fn(*args, **kwargs)
pass
return decorated_function
return fn_wrapper
它只是一個演示,它將在從MySQL查詢之前在redis中獲取商店信息。
我去錯誤。它告訴我們一個Unresolved reference error
任何人誰知道如何解決這個問題?提前致謝。
'shop_id'需要在函數/裝飾器之外定義。 – wmorrell
@wmorrell我正在使用flask-Restful,並且無法在函數外部定義shop_id,這裏有一個演示,http://flask-restful.readthedocs.io/en/0.3.5/quickstart.html#resourceful-routing – diligent
你使用PyCharm嗎? – lapinkoira