如何将变量从中间件传递到falcon中的资源?

时间:2018-08-07 06:20:01

标签: python falconframework

我正在使用Falcon,我需要将变量从中间件传递到资源,该怎么办?

main.py

app = falcon.API(middleware=[
    AuthMiddleware()
])

app.add_route('/', Resource())

和身份验证

class AuthMiddleware(object):
    def process_request(self, req, resp):
        self.vvv = True

和资源

class Resource(object):
    def __init__(self):
        self.vvv = False
    def on_get(self, req, resp):
        logging.info(self.vvv) #vvv is always False

为什么self.vvv始终为假?我已经在中间件中将其更改为true。

1 个答案:

答案 0 :(得分:3)

首先,您正在混淆<template> has a v-for list feeded by the computed() property below. mounted () a function calling vuexfire action binding db RESTRICTED collection to state.ref computed () some c. property returning a list of state.ref methods () some method callong vuexfire action binding db UN***RESTRICTED collection relative to some WHERE TO parameter to state.ref 的含义。自我仅影响类的实例,是一种向类添加属性的方式,因此self中的self.vvv与类{{ 1}}。

第二,您不需要从资源中的AuthMiddleware那里了解任何信息,这就是为什么要使用中间件的原因。中间件是在每个请求之后或之前执行逻辑的方法。您需要实现中间件,以便它引起Falcon异常或修改您的请求或响应。

例如,如果您未授权请求,则必须引发如下异常:

AuthMiddleware

查看猎鹰页面examples