Skip to main content
MIME类型

MIME 即互联网媒体类型,也称作内容类型(Content-Type)。

常用于表示互联网传输内容赋予的分类类型。

Pywss 支持多种数据类型解析。

Byte

Pywss 服务可以通过 ctx.body() 获取原生请求体数据。此方法依赖 Content-Length 读取数据。

import pywss

def handler(ctx: pywss.Context):
assert ctx.body() == b"pywss"

app = pywss.App()
app.post("/byte", handler)
app.run()

Json

Pywss 服务可以通过 ctx.json() 获取原生请求体数据,并将其转化为 JSON 类型。

import pywss

def handler(ctx: pywss.Context):
assert ctx.json() == {"name": "pywss"}

app = pywss.App()
app.post("/json", handler)
app.run()

Form

Pywss 服务可以通过 ctx.form() 获取原生请求体数据,并将其转化为 FORM 表单类型。

import pywss

def handler(ctx: pywss.Context):
assert ctx.form() == {"name": "pywss"}

app = pywss.App()
app.post("/form", handler)
app.run()

File

Pywss 服务可以通过 ctx.file() 获取原生请求体数据,并将其转化为 FILE 类型。

import pywss

def handler(ctx: pywss.Context):
file: pywss.File = ctx.file()["upload-file"]
assert file.name == "upload-file"
assert file.filename == "file.txt"
assert isinstance(file.content, byte)

app = pywss.App()
app.post("/file", handler)
app.run()
pywss.File
class File:

def __init__(self, name, filename, content):
self.name: str = name
self.filename: str = filename
self.content: bytes = content

Stream

Pywss 服务可以通过 ctx.stream() 流式读取原生请求体数据。这在大数据上传场景下会很有用。

此外,stream 还支持两种读取模块:

  • 按指定大小读取数据
  • 逐行读取数据
import pywss

def handler(ctx: pywss.Context):
for data in ctx.stream(size=32): # 按指定大小读取数据
print(len(data) == 32, data)

app = pywss.App()
app.post("/stream", handler)
app.run()