python3写一个http接口服务(get, post),给别人调用6

news2024/11/29 3:54:22

python3写一个http接口服务(get, post),给别人调用6

一、python3写一个http接口服务(get, post),给别人调用6

近年来异步web服务器比较火热,例如falcon/bottle/sanic/aiohttp,今天也来玩玩sanic。
Sanic是一个支持Python 3.7+的web服务器和web框架,速度很快。它允许使用Python 3.5中添加的async/await语法,无阻塞且快。
Sanic也符合ASGI,目标是提供一种简单的方法来建立和运行一个高性能的HTTP服务器,该服务器易于构建、扩展。

二、FastAPI的get接口代码实现

2.1 安装

pip install sanic

2.2 代码

# -*- coding: UTF-8 -*-
# !/usr/bin/python
# @time     :2022/2/22 21:43
# @author   :Mo
# @function :get/post of sanic


from sanic.response import json, text
from sanic import Sanic, request


app = Sanic("calculate")
app.config.HEALTH = True


@app.route("/calculate/add", methods=["GET", "POST"])
async def calculate_add(request):
    """ 分类 """
    if request.method == "POST":
        params = request.form if request.form else request.json
    elif request.method == "GET":
        params = request.args
    else:
        params = {}
    a = params.get("a", 0)
    b = params.get("b", 0)
    c = int(a) + int(b)
    data_dict = {"c": c}
    status_code = 200
    res_dict = {"code": status_code,
                "data": data_dict,
                "message": "success"
                }
    return json(res_dict, status=status_code, ensure_ascii=False)


if __name__ == "__main__":
    app.run(single_process=True,
            access_log=True,
            host="0.0.0.0",
            port=8032,
            workers=1,
            )

2.3 接口访问

2.3.1 GET接口

GET请求: http://localhost:8032/calculate/add?a=1&b=1

请求结果:

在这里插入图片描述

2.3.2 POST接口

POST请求: http://localhost:8032/calculate/add

Body: {“a”:618, “b”: 32}

请求结果:

在这里插入图片描述

三、参考

  • https://github.com/sanic-org/sanic

  • https://github.com/sanic-org/sanic

希望对你有所帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue.js 中的 v-for 中的 key 属性

Vue.js 中的 v-for 中的 key 属性 Vue.js 是一个流行的 JavaScript 前端框架,它提供了一种简单的方式来构建可复用的组件和应用程序。在 Vue.js 中,v-for 指令用于循环渲染一个数组或对象,并将每个元素渲染为一个 DOM 元素。在使用 v-for 指…

数据安全架构设计

在提到安全架构之前,我们先看看安全的定义:安全是产品的质量属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability)…

【大数据学习篇14】centos6安装Mysql

目录 1. centos6.5安装mysql5版本 1.1 以su超级用户,安装Mysql数据库 1.2 启动Mysql数据库 1.3、安装Mysql客户端 1.4 进入Mysql 1.5 设置密码123456,展示所有数据库 1.6 进入数据库test 1.7 创建数据库表 1.8 重新输入密码123456,进…

java代码的freemarker模板将JSP页面转换成word文档导出

使用java代码的freemarker模板将JSP页面转换成word文档导出 使用java代码的freemarker模板将JSP页面转换成word文档导出 一、准备好freemarker模板, 我的模板是这样的 需要特别注意的是,这些名字的写法是很特殊的,这个模板是wps在进行word…

100种思维模型之放大关键行动思维模型-75

很多时候,决定结果大小的是 关键行动的执行程度, 所以我们要适时 放大关键行动 ! 放大关键行动思维模型,一个 告诉我们 事前思考寻找能够破局的关键点,落实时要放大关键点上的行动 的思维模型。 01、何谓放大关键行动…

《Kali渗透基础》06. 主动信息收集(三)

kali渗透 1:服务识别1.1:NetCat1.2:Socket1.3:dmitry1.4:nmap 2:操作系统识别2.1:Scapy2.2:nmap2.3:p0f 3:SNMP 扫描3.1:onesixtyone3.2&#xff…

AI初体验 - 最初的两次AI辅助开发

1.第一个尝试:物理公式 2023年6月7日,是我第一次在 AI(ChatGPT)的帮助下,完成了一个数据分析工作。当时手里有一些数据,我大致知道物理原理,但是无法给出一个合适的公式。我大概工作了5个小时,没有进展&am…

RTP介绍

一、简介 Real-time Transport Protocol(实时传输协议) 具体参考rfc3350介绍 可负载H264、H265、G711A、AAC、PS、私有流等各种数据。 二、格式 RTP 固定头部格式如下 version (V): 2bits RTP协议版本号 目前协议版本为2 padding (P): 1bit 填充位 设置成1&#xff…

无线led显示屏的优势

无线LED显示屏是一种利用无线技术进行数据传输和控制的LED显示屏,相比传统有线连接的LED显示屏,具有以下优势: 灵活性和便捷性:无线LED显示屏无需使用复杂的有线连接,可以通过无线网络进行数据传输和控制。这使得安装和…

Linux内核中内存管理相关配置项的详细解析1

本文基于kernel 6.1.0,针对于“Linux/x86 6.1.0 Kernel Configuration”中的“Memory Management options”项下的各个子配置项(如下图所示)进行详细解析。 一、Support for paging of anonymous memory (swap) 这个选项以前位于“General S…

deepin 安装 MySQL

1.下载网址:MySQL :: Begin Your Downloadhttps://dev.mysql.com/downloads/file/?id519241 不用注册,直接下载 2. 打开下载文件:mysql ......deb 文件 3 选择步骤:选ubuntu bionic 4 ->MySQL Server&Cluster->mysq…

钢铁废水除氟

钢铁工业废水含多种污染物,包括大量的挥发酚、氟化物、石油类、悬浮物、砷、铅等有害物质。其中含氟工业废水的大量排放,不仅污染环境,还会危害到农作物和牲畜的生长发育,并且可以通过食物链影响到人体健康。所以对含氟废水需降氟…

去掉字符串中的空格,通过正则根据不同的需求分别能去掉前、后、前后、中间的空格。

正则小tips: 正则表达式 - 修饰符 gglobal - 全局匹配 正则表达式 - 元字符 ^匹配输入字符串的开始位置。*匹配前面的子表达式零次或多次。$匹配输入字符串的结束位置。\s 匹配任何空白字符,包括空格、制表符、换页符等等。 匹配前面的子表达式一次…

【计算机组成与体系结构Ⅰ】章节测试(5-7)

在CPU中跟踪指令后继地址的寄存器是___。 A 主存地址寄存器 B 程序计数器 (我的答案) C 指令寄存器 D 状态条件寄存器 下面描述的RISC机器基本概念中,正确的表述是 __。 A. RISC机器不一定是流水CPU. B. RISC机器一定是流水CPU. &#…

基于Tensorflow+SDD+Python人脸口罩识别系统(深度学习)含全部工程源码及模型+视频演示+图片数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Anaconda 环境搭建 模块实现1. 数据预处理2. 模型构建及算法实现3. 模型生成 系统测试1. 训练准确率2. 运行结果 工程源代码下载其它资料下载 前言 在当今全球范围内,新冠疫情对我们的生活方式带来了…

单核 CPU 支持 Java 多线程吗?我们来一起看看吧

1 前言 由于现在大多计算机都是多核CPU,多线程往往会比单线程更快,更能够提高并发,但提高并发并不意味着启动更多的线程来执行。更多的线程意味着线程创建销毁开销加大、上下文非常频繁,你的程序反而不能支持更高的TPS。 2 时间…

超图使用问题汇总

超图使用问题汇总 切地图栅格瓦片的时候,必须确认生成地图的源数据坐标系已经被识别,否则无法进行全球剖分 下图就是未识别坐标系的情况 切地图矢量瓦片的时候,需要使用idesktopx来切,idesktop无法生成矢量瓦片。 矢量瓦片切片时…

Ubuntu安装docker-compose

官网 Install Compose standalone curl -SL https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose离线 下载文件 开启vpn浏览器https://github.com/docker/compose/releases/download/v2.18.1/dock…

第九篇:强化学习Q-learning算法 通俗介绍

你好,我是郭震(zhenguo) 今天介绍强化学习第九篇:Q-learning算法 前面我们介绍强化学习基本概念,马尔科夫决策过程,策略迭代和值迭代,这些组成强化学习的基础。 从今天开始逐步介绍常用强化学习算法&#x…

QT调用linux外部命令或者shell script

目录 原文链接:https://blog.csdn.net/YMGogre/article/details/128973098 0、本文使用的环境配置: 1、新建一个简单的Shell脚本: 2、在Qt中启动外部Shell脚本: 2.1、使用标准库中提供的方法 —— system() 2.2、使用Qt提供…