跳转到主要内容

构建无头WSGI应用的工具包。

项目描述

骑手是一个构建WSGI应用的工具包。它经过了大量测试,并使用由Cython驱动的库。

其理念是:“你吃多少,就付多少”。

代码非常简洁,试图提供关键组件以构建更复杂的应用程序。

它符合WSGI标准,并允许您使用WSGI中间件。

示例

以下是一个裸骨API示例,处理对‘/’的GET请求,并返回JSON响应。

import logging
from bjoern import run
from horseman.meta import SentryNode, Overhead, APIView
from horseman.response import Response


class Request(Overhead):

    data = None

    def __init__(self, environ):
        self.environ = environ

    def extract(self):
        self.data = 'somedata'


class View(APIView):

    def GET(self, overhead):
        return Response.to_json(200, {"Result": "OK"})


VIEWS = {
    "/": View()
}


class RootNode(SentryNode):

    def resolve(self, path_info, environ):
        if view := VIEWS.get(path_info):
            request = Request(environ)
            return view(request)

    def handle_exception(self, exc_info, environ):
        logging.error(exc_info)


run(
    host="0.0.0.0",
    port=8080,
    reuse_port=True,
    wsgi_app=RootNode(),
)

变更

0.6 (2022-08-25)

主要更新。

  • 通过放弃模仿MultiDict的尝试,简化了Data类的解析。解析不再将文件与表单数据分开,值存储为包含(名称,值)的元组列表。

  • 已删除FormDataTypeCastingDictQuery类。

0.5 (2022-05-31)

  • 多部分解析器不再向表单多字典中添加空值。

0.4 (2022-04-06)

  • 修复了FormData.to_dict以处理空或false值。

0.3 (2022-04-05)

  • 不再期望在environ中存在PATH_INFO。一些WSGI服务器在为空时不会提供它。

  • 在Node的__call__中添加了路径归一化,以避免损坏的路径信息。

0.2 (2021-10-08)

  • 首次上传到pypi。稳定版0.2。

0.1 (2021-10-08)

  • 初始发布。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

horseman-0.6.tar.gz (16.7 kB 查看哈希值)

上传时间 源代码

由以下机构支持