【问题标题】:creating hooks in python twisted在 python twisted 中创建钩子
【发布时间】:2017-01-07 09:53:37
【问题描述】:

我正在使用 twisted 来制作一个简单的服务器。我有几个资源(端点),我可以对其进行 http 调用。我需要添加像falconflask 这样的钩子来获取每个调用的查询参数。我怎样才能做到这一点。

from twisted.web.resource import Resource, NoResource
import json
import redis
from twisted.internet import threads, defer
from twisted.web.server import NOT_DONE_YET
import time

class JobListener(Resource):

    isLeaf = True

    def render_POST(self, request):
        # i want query params here
        return NOT_DONE_YET


class Home(Resource):

    def getChild(self, name, request):
        uri =  request.uri
        print uri
        if uri == '/':
            return self
        if uri == '/api/v1/dump':
            return JobListener()
        else:
            return NoResource()

    def render_GET(self, request):
        return "<html><body>Welcome to the server!</body></html>"

每当我点击/api/v1/dump 时,它都会调用 JobListener,我希望以某种方式向所有端点添加一个钩子,以便在调用 api 时填充查询参数

【问题讨论】:

    标签: python hook twisted decorator


    【解决方案1】:

    请求对象上提供了查询参数。见args

    http://twistedmatrix.com/documents/current/api/twisted.web.iweb.IRequest.html

    【讨论】:

    • 我不确定,不是我。也许有人认为这是一个太简单的问题,文档很容易回答,或者也许有人认为很难理解所问的问题(即,因为Home 似乎对于访问查询参数的问题来说是不必要的复杂性)。不过,只是猜测。
    • 我已经知道 abt request.args 但我正在寻找一些答案,例如 falconflask hooks 。我接受了你的回答,因为它是有道理的,我认为这是扭曲的唯一方法。我希望那些只是投反对票的人至少应该阅读这个问题
    • 如果我的回答没有回答你的问题,你为什么要接受?
    • 我想,一个更好的方法来询问你想问什么,是给出一个内联示例,说明你将如何使用 falcon 或烧瓶做你想做的事情。正如所写的那样,您要实现的目标并不是很清楚(或者可能是针对具有大量烧瓶或猎鹰经验的人)。
    • 。我现在明白了。问题应该用一些例子正确表达,我会对其进行更改
    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2014-11-11
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    相关资源
    最近更新 更多