python cherry 用法

2023-05-16

CheeryPy是一个 Pythonic 的、面向对象的 Web 框架,能够用于接受POST或者GET请求并进行回复。

CheeryPy中文文档:

Cherrypy-一个极简的python web框架 — CherryPy 18.6.1.dev44+gc524a0da.d20220502 文档

根据中文文档,给出一个简单的应用例子,

包括:

  • 接受POST和GET请求,并进行回复
  • 解码JSON请求内容
  • 通过定义CheeryPy配置文件,自定义请求端口

 

import cherrypy
import json
import logging

logging.basicConfig(level=logging.DEBUG)

class CheeryPyTest(object):
    @cherrypy.expose # 暴露接口
    def index(self):
        return "Hello world!"

    @cherrypy.expose # 暴露接口
    # @cherrypy.tools.json_out()
    @cherrypy.tools.json_in() # 解码JSON请求
    def generate_request(self): # 可以接受GET或者POST请求,参数为key和value
        try:
            request_para = cherrypy.request.json
            if "key" not in request_para or "value" not in request_para:
                logging.error("request para error!, request:%s", str(request_para))
                return "request para error!"
            key = request_para["key"]
            value = request_para["value"]
            logging.info("key: %s, value: %s", key, value)
            return "request succ!"
        except Exception as e:
            logging.error('unknow error: %s', e)
            return "request error!"
        
def main():   
    cherrypy.config.update({'server.socket_host': '0.0.0.0', # 主机IP
                            'server.socket_port': 7090, # 自定义端口
                            'engine.autoreload.on': False})
    cherrypy.quickstart(CheeryPyTest())

if __name__ == '__main__':
    main()

示例包括两个接口

第一个接口:

直接请求 :http://127.0.0.1:8080:7090/index,

正常返回:"hello world"

第二个接口:

 通过http://127.0.0.1:8080:7090,加上POST请求参数即可

{
    "key": "hello",
    "value": "world"
}

或者使用curl请求的方式:

curl -H "Content-Type: application/json" -X POST -d '{"key": "hello", "value":"world"}' http://localhost:7090/generate_request

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python cherry 用法 的相关文章

随机推荐

  • 使用apt-get update命令卡在waiting for headers

    今天 xff0c 想在自己的debian系统里面装下java8 xff0c 添加了一个源update的时候出现的点问题就ctrl c了 没想到之后再update就不行了 一直卡在100 正在读报头waiting for headers 网上
  • 四轴飞行器基本组成及其飞行原理详解

    近日 xff0c 自己组装了一台 四轴飞行器 xff1b 组装完后 xff0c 便想深究其原理 xff1b 避免只是 知其然 xff0c 却不知其所以然 xff1b 查阅资料后 xff0c 便在其他文章的基础上 xff0c 将此文 归纳整理
  • ubuntu20.04分区方案 for deeplearning

    一共分出4个系统分区 1 设置efi引导 因为是u盘的uefi启动 xff0c 因此设置一个efi引导项 具体参数 xff1a 大小 500到1024mb即可 xff08 视自身的存储空间而定 xff09 新分区的类型 xff1a 逻辑分区
  • Linux重定向和管道符

    Linux重定向和管道符 1 Uid gid是什么 xff1f 2 linux中设置环境变量的几种方法3 管道命令符和通配符4 输入输出重定向 1 Uid gid是什么 xff1f 1 1 用户组 UID以及GID概念 用户组 xff1a
  • OpenFlow概念学习

    前言 OpenFlow交换机将原来完全由交换机 路由器控制的报文转发过程转化为由OpenFlow 交换机和控制服务器来共同完成 xff0c 目的交换机要通过of协议 xff08 OpenFlow Protocol xff09 经 安全通道
  • Ubuntu创建用户(组)与权限管理

    Ubuntu创建用户 xff08 组 xff09 与权限管理 创建用户与用户组创建和删除用户及用户组给用户配置sudo权限用户管理相关的命令 创建用户与用户组 在管理服务器时 xff0c 需要注意用户权限分配 xff0c 这样不会造成重大的
  • docker修改容器与宿主机端口映射

    1 查看容器id docker ps 2 进入容器安装目录 cd var lib docker containers 找到容器对应的文件夹 xff0c 容器id与文件夹前面的id是一样的 进入文件夹 cd 593f0dd680d77e901
  • Prometheus源码学习(1) 编译源码

    代码里面看不明白的变量或者函数可以通过两种方式观测它的值来了解其含义 一种是把代码片段摘出来 xff0c 写到一个测试程序里运行一下另一种时日志里打印它的值来观察 第一种比较简单易行 xff0c 但是代码片段要比较独立才好做 xff0c 第
  • ubuntu的命令&操作

    记录ubuntu系统使用中一些常用的操作 1 在ubuntu终端打开图像界面的文件夹 xff1a cd到指定的目录之后执行nautilus即可 参考 xff1a linux系统ubuntu中在命令行如何打开图形界面的文件夹 李照耀 博客园
  • Leetcode解题目录(Python版)

    Leetcode解题目录 xff08 Python版 xff09 题目目录1 排序算法2 哈希表3 动态规划 题目来源于LeetCode官网题库 xff0c 解题思路参考官网各大佬 xff0c 这里做一个目录方便大家查找 xff0c 另外方
  • error while loading shared libraries: libopencv_imgcorecs.so.3.4:: cannot open shared object file:

    ubuntu16 04的环境下 xff0c 编译成功C 43 43 代码 xff0c 同时也安装好了opencv3 4 在运行时却出现error xff1a error while loading shared libraries libo
  • 基于LQR的车辆LKA算法设计

    记录分享一下基于LQR控制算法的车辆LKA设计 通过carsim和simulink进行联合仿真 1控制算法设计 整体思路是通过车辆以及道路模型 得到控制器的输入 v 纵向速度 r 横摆角速度 y 侧向路径偏移 phi 横摆角误差 通过最优控
  • 软件框架

    1 概念 框架 xff08 framework xff09 是一个框子 指其约束性 xff0c 也是一个架子 指其支撑性 是一个基本概念上的结构 xff0c 用于去解决或者处理复杂的问题 框架这个广泛的定义使用的十分流行 xff0c 尤其在
  • 使用C++开发STM32 FreeRTOS工程与添加DSP库

    续上一篇文章的内容 由CubeMX构建的Makefile工程只支持C和汇编的编译 xff0c 而且FreeRTOS的代码也需要作为C代码编译 当我们想使用C 43 43 时 xff0c 需要做一些准备并且修改Makefile xff1b 另
  • CPU分时、中断和上下文切换

    准备知识 xff1a 实时和分时 嵌入式操作系统可以分为实时操作系统和分时操作系统两类 我们现实之中使用的绝大多数是分时操作系统 xff0c 比如windows或者linux 但是比如汽车就必须使用实时操作系统 xff0c 举一个经常使用的
  • 如何从AD导出PDF原理图

    https jingyan baidu com article 7c6fb428d4759080642c9017 html
  • PyQt ——setStyleSheet用法

    这个是CSS的手册 xff0c 所有的东西都可以参考这里 xff1a https css doyoe com 下面是CSS 的东西 字体属性 xff1a font 大小 font size x large 特大 xx small 极小 一般
  • QMessageBox

    span class token triple quoted string string 39 39 39 简介 PyQt5中 QMessage 例子 39 39 39 span span class token keyword impor
  • QInputDialog

    span class token triple quoted string string 39 39 39 简介 PyQt5中 QInputDialog 例子 39 39 39 span span class token keyword i
  • python cherry 用法

    CheeryPy是一个 Pythonic 的 面向对象的 Web 框架 xff0c 能够用于接受POST或者GET请求并进行回复 CheeryPy中文文档 xff1a Cherrypy 一个极简的python web框架 CherryPy