跳转到主要内容

基于Curio的Web框架

项目描述

https://travis-ci.cn/trollfot/trinket.svg?branch=master

Trinket

一个Curio HTTP服务器。

安装

Trinket需要python3.7+

git clone https://github.com/trollfot/trinket.git
python3.7 -m venv trinket_env
source trinket_env/bin/activate
pip install -e trinket trinket[test]
pytest trinket/tests

示例

from trinket import Trinket, Response
from trinket.response import file_iterator
from trinket.extensions import logger

bauble = logger(Trinket())


@bauble.route('/')
async def hello(request):
    return Response.raw(b'Hello World !')


@bauble.route('/raw', methods=['POST'])
async def raw(request):
    return Response.raw(b'You got here')


@bauble.route('/read', methods=['POST'])
async def reader(request):
    await request.parse_body()
    files = list(request.files.keys())
    return Response.raw("You got here and it's all read: {}".format(files))


@bauble.route('/hello/full/with/{one}/and/{two}')
async def json(request, one, two):
    response = Response.json({
        'parameters': f'{one} and {two}',
        'query': request.query.get('query'),
        'cookie': request.cookies['test'],
    })
    response.cookies.set(name='bench', value='value')
    return response


@bauble.route('/websocket')
async def serve_websocket(request):
    response = Response.streamer(file_iterator('myfile.ext'))
    return response


@bauble.websocket('/chat')
async def chat(request, websocket):
    while True:
        msg = await websocket.recv()
        for ws in bauble.websockets:
            if ws is not websocket:
                await ws.send(msg)


bauble.start()

致谢

Trinket大量依赖于来自https://github.com/pyrates的包:非常优秀的可重用组件,具有Cython改进的性能。

变更日志

0.1.5 (2019-12-18)

  • 修复了raw_body调用中的body重复问题,这是由于在on_body中已发生连接,由读取器触发。

0.1.4 (2019-12-16)

  • 依赖关系维护:将版本提升到最新稳定版。

0.1.3 (2019-01-24)

  • 固定特定包版本

  • 更新到wsproto(0.13)的最新版本

  • Trinket应用程序现在继承自dict以允许任意存储

  • 将TCP服务/套接字创建与实际应用程序解耦

0.1.2 (2019-01-18)

  • 更新了分发文件

0.1.1 (2019-01-18)

  • 添加了测试和测试工具

  • 修复了缺失的导入

0.1 (2019-01-17)

  • 初始发布

项目详情


下载文件

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

源分发

trinket-0.1.5.tar.gz (19.4 kB 查看哈希值)

上传时间:

由以下支持