跳转到主要内容

一种熟悉风格的HTTP框架。

项目描述

Responder:Python的一个熟悉风格的HTTP服务框架

Build Status Documentation Status image image image image

Starlette 提供。那个 async 声明是可选的。 查看文档

这为您提供了一个 ASGI 应用程序,预安装了生产静态文件服务器,jinja2 模板(无需额外导入),以及基于 uvloop 的生产型 web 服务器,它会自动对请求进行 gzip 压缩。

客户评价

"非常喜欢 python-responder。 @kennethreitz 达到了顶峰。" —Rudraksh M.K.

"ASGI 将能够启用各种高性能的 Web 服务。看到 Responder 开始利用这一点真是太棒了。" —Tom Christie,著有 Django REST Framework

"我喜欢你正在探索新的模式。加油加油!" — 丹尼·格林菲尔德,《Two Scoops of Django》作者

更多示例

查看文档的功能浏览以获取关于Responder中可用功能的更多详细信息。

安装Resonder

安装稳定版本

$ pipenv install responder
✨🍰✨

或者,从开发分支安装

$ pipenv install -e git+https://github.com/taoufik07/responder.git#egg=responder

仅支持Python 3.6+

基本理念

这里的主要概念是将Flask和Falcon带来的便利性统一到一个框架中,并融入一些我自己的新想法。我还想将Requests库中的一些API原语应用到Web框架中。因此,您会发现这里有很多与Requests的相似之处。

  • 设置resp.content返回字节。
  • 设置resp.text返回Unicode,而设置resp.html返回HTML。
  • 设置resp.media返回JSON/YAML(.text/.html/.content可以覆盖此设置)。
  • 不区分大小写的req.headers字典(直接从Requests获取)。
  • resp.status_codereq.methodreq.url和其他熟悉的元素。

想法

  • 采用Flask风格的路由表达式,并具有新功能——同时使用Python 3.6+'的新f-string语法。
  • 我喜欢Falcon的“每个请求和响应都传递到每个视图并修改”的方法,特别是response.media,并将其用于此处。除了支持JSON,我还决定支持YAML,因为Kubernetes正在慢慢接管世界,它使用YAML做所有事情。内容协商等等。
  • 内置测试客户端,使用您所熟知的实际Requests库。.
  • 轻松挂载其他WSGI应用的能力。
  • 自动gzip压缩响应。
  • 除了Falcon的on_geton_post等方法外,Resonder还提供了一个on_request方法,它在每种类型的请求上都将被调用,就像Requests一样。
  • 内置生产静态文件服务器。
  • 内置Uvicorn作为生产Web服务器。我本想选择Gunicorn,但它不支持Windows。另外,Uvicorn在保护生产环境免受slowloris攻击方面表现良好,使得nginx在生产环境中不再必要。
  • 通过Graphene支持GraphQL。目标是让任何GraphQL查询都可以在任意路由下神奇地公开。
  • 提供运行webpack的官方方式。

项目详情


下载文件

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

源分发

responder-2.0.7.tar.gz (24.2 kB 查看哈希值)

上传时间

构建分发

responder-2.0.7-py3-none-any.whl (24.8 kB 查看哈希值)

上传时间 Python 3

支持