Кэш-функция или представление?
Я хочу использовать django-rest-framework
с кэшем.
@cache_page(10 * 60)
@api_view(['GET'])
def get_num(request):
if request.method == "GET":
res = ["ok"]
return Response(res)
Хорошо работает.
На самом деле я хочу кэшировать не view
, а function
@cache_page(10 * 60)
def getCalc(num):
return num * 10
@api_view(['GET'])
def get_num(request):
if request.method == "GET":
res = getCalc(request.query_params.get('num'))
return Response(res)
Приходит ошибка TypeError: _wrapped_view() missing 1 required positional argument: 'request'
Можно ли использовать кэш для function
???
вы можете использовать cachetools
@cachetools.func.ttl_cache(maxsize=10,ttl=10*6)
def getCalc(num):
return num * 10
maxsize зависит от ваших требований.
вы можете добавить запрос к параметрам функции:
@cache_page(10 * 60)
def getCalc(request, num):
return num * 10
@api_view(['GET'])
def get_num(request):
if request.method == "GET":
res = getCalc(request, request.query_params.get('num'))
return Response(res)