微控制器上webserver的极简核

userv的Python项目详细描述


捕捉

每个web服务器的第一步是路由和解析html。 这是核心。

布线

路由器对象很简单,是服务器实例的输入。 示例:

from userv.routing import Router, text_response

router = Router()

def test(request):
    return text_response("some text")

router.add("/resturl", test, method="GET")

您可以使用:

router.get('/resturl', method="GET")

对于创建swagger等,还有一个list命令:

router.list()

在一个地方有这些路线,即使没有 服务器实例。

响应类型

有一些内置响应类型文本、json和静态文件。

响应函数的一般要点是创建一个生成器 将被服务器使用。

如果你想完全控制你的内存流或者需要写一些 渴望记忆的回应可以自己写一个回应。

小提示确保使用response_header函数并以 一个“\r\n”。

提供静态文件

很简单,只需将地址与要提供的文件一起添加。

示例:

from userv.routing import static_file

router.add("/index", static_file('boot.py'))

尽管示例不应该公开您的代码。这是一个非常简单和快速的测试。

炫耀你的api

swagger.io是记录api的好方法。本节是提供swagger.json的快速方法 从你的服务器。必须在本地网络中查看此api。

说明示例:

# Get requests have a parameter description
@swagger.info("My_funny summary")
@swagger.parameter('myvarname', description="", example='sdfs', required=True)
@swagger.response(200, 'smth is off')
def myrest_func(request):
    raise


# Post request needs a body description
@swagger.info("My_funny summary")
@swagger.body('weatherinfo', {'tada': "examplevar",
                              "tada2": 2})
@swagger.response(200, 'smth is off')
def post_myrest_func(request):
    raise

router.add("/resturl", myrest_func, method="GET")
router.add("/resturl", post_myrest_func, method="POST")

服务swagger.json的示例:

from userv.swagger import swagger_file
router.add("/swagger.json", swagger_file('my swagger api', "api title", router_instance=router))

示例显示我们添加了路由器实例,因此所有注册到该点的路由。 也就是说,如果你想让所有的路线在你的招摇过市添加招摇过市文件前不久运行。 你现在需要做的就是在浏览器中打开一个招摇过市的用户界面,并使用链接到你所服务的招摇过市。

更多软件包和网络服务器

atm有一个socketserver的实现,它甚至可以在esp8266上运行:

pip install userv.socket_server

以及具有可交换接口的异步服务器。

pip install userv.async_server

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?