返回顶部
首页 > 资讯 > 后端开发 > Python >如何快速把你的 Python 代码变为 API
  • 556
分享到

如何快速把你的 Python 代码变为 API

PythonAPI语法 2023-05-14 21:05:07 556人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

提到 api 开发,你可能会想到 Django REST Framework,flask,FastAPI,没错,它们完全可以用来编写 API,不过,今天分享的这个框架可以让你更快把现有的函数转化为 API,它就是 Sanic。Sanic 简

提到 api 开发,你可能会想到 Django REST Framework,flask,FastAPI,没错,它们完全可以用来编写 API,不过,今天分享的这个框架可以让你更快把现有的函数转化为 API,它就是 Sanic。

Sanic 简介

Sanic[1],是 python3.7+ WEB 服务器和 Web 框架,旨在提高性能。它允许使用 python3.5 中添加的 async/await 语法,这可以有效避免阻塞从而达到提升响应速度的目的。Sanic致力于提供一种简单且快速,集创建和启动于一体的方法,来实现一个易于修改和拓展的 Http 服务,Sanic 具备开箱即用的功能,它可以用于编写,部署和扩展生产级 Web 应用程序。目前 GitHub 有 16.3k 的星,有广泛的社区支持。

有以下特性:

  • 内置极速 web server
  • 生产准备就绪
  • 极高的拓展性
  • 支持 ASGI
  • 简单直观的 API 设计
  • 社区保障
  • 如何将现有代码快速转化为 API

现在让我们看,如何将代码转为 API,假如有已经在 functions.py 写好的两个函数:

import datetime


def get_datetime():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")


def sum_x_y(x, y):
return x + y

转化为 API 只需再编写一个 sanic_app.py :

from sanic import Sanic, JSON
from functions import get_datetime, sum_x_y

app = Sanic("CodeToAPI")
HOST = "localhost"
PORT = 8000

@app.route("/getdatetime")
async def getdatetime(request):
return json({"now": get_datetime()})

@app.get('/sumxy')
async def sumxy(request):
parameters = request.args
result = sum_x_y(int(parameters['x'][0]), int(parameters['y'][0]))
return json({'result': result})


if __name__ == "__main__":
app.run(host=HOST, port=PORT, debug=False)

然后,只需要执行 Python sanic_app.py 就可以启动 API 服务:

图片

从运行结果可以得知,sanic 已经运行在生产环境模式,这与其他 Web 框架不同,其他框架带有一个内置的开发服务器,并明确表示它只用于开发。而 Sanic 的情况恰好相反,内置的服务器可以直接用于生产环境。

可以用 curl 进行接口测试

❯ curl "http://localhost:8000/getdatetime"
{"now":"2022-07-25 06:34:25"}%❯ curl "http://localhost:8000/sumxy?x=12&y=34"
{"result":46}%

如果用 post,且使用 json 传参,也是简单的:

@app.post('/sumxy')
async def sumxy(request):
parameters = request.json
print(parameters)
result = sum_x_y(int(parameters['x']), int(parameters['y']))
return json({'result': result})

curl 这样测试:

❯ curl -X 'POST' 'http://localhost:8000/sumxy' -H "Content-Type: application/json" -d '{"x":10,"y":20}'
{"result":30}%

部署在其他

Sanic 除了自带的服务器(大多数情况推荐自带的服务器用于生产),同样兼容 ASGI。这意味着您可以使用你喜欢的 ASGI 服务器来运行 Sanic。现在有三大主流的 ASGI 服务器, Daphne、Uvicorn (FastAPI 用的就是这个)、Hypercorn。

也可以部署在 Gunicorn:

gunicorn myapp:app --bind 0.0.0.0:1337 --worker-class sanic.worker.GunicornWorker

静态文件的处理,及记录请求访问日志,又想获得更好的性能,可以考虑使用 Nginx 作为代理,让 Nginx 来处理访问日志和静态文件,这种方式要比用 Python 处理快得多得多。

以上就是如何快速把你的 Python 代码变为 API的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何快速把你的 Python 代码变为 API

本文链接: https://lsjlt.com/news/205905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何快速把你的 Python 代码变为 API
    提到 API 开发,你可能会想到 Django REST Framework,Flask,FastAPI,没错,它们完全可以用来编写 API,不过,今天分享的这个框架可以让你更快把现有的函数转化为 API,它就是 Sanic。Sanic 简...
    99+
    2023-05-14
    Python API 语法
  • 如何快速让你的代码支持Cocoapods!
    Show me the code !此次分享的是如何让你的代码框架上传到cocoapods,方便使用!对了,在第一句之前应该介绍cocoapods的背景,但作为iOS developer,不用介绍都知道其重要性,OK,Talk is che...
    99+
    2023-06-04
  • 如何快速编写Python代码
    本篇内容主要讲解“如何快速编写Python代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何快速编写Python代码”吧!1."二维列表"...
    99+
    2024-04-02
  • Python API 和 Windows:如何快速生成二维码?
    二维码(QR Code)是一种二维码码制,是由日本的 Denso Wave 公司于1994年发明的。随着智能手机的普及,二维码已经成为了一种非常方便的信息传递方式。二维码可以存储大量的数据,例如网址、联系方式等等。在本篇文章中,我们将介绍...
    99+
    2023-05-26
  • 「Python 学习笔记」:如何在 Django shell 中快速测试你的代码?
    Python 学习笔记:如何在 Django shell 中快速测试你的代码? 在 Django 开发过程中,我们经常需要测试我们的代码,以确保它们能够正常运行。通常我们会使用 Django 的测试框架来编写测试用例。但是,在某些情况下,使...
    99+
    2023-11-02
    学习笔记 django shell
  • 怎么快速武装你的代码库
    本篇内容介绍了“怎么快速武装你的代码库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 规范 commi...
    99+
    2024-04-02
  • Python 打包 api:如何让你的代码更加灵活?
    Python 是一种高级编程语言,它被广泛应用于数据科学、机器学习、人工智能和网络编程等领域。由于 Python 具有良好的可读性和易用性,因此越来越多的人开始使用它来开发自己的项目。然而,当你需要将你的 Python 代码分享给他人时,...
    99+
    2023-07-24
    打包 api 关键字
  • python如何快速交换变量值
    这篇文章主要为大家展示了“python如何快速交换变量值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python如何快速交换变量值”这篇文章吧。快速交换变量值x, y =&...
    99+
    2023-06-27
  • 如何在 Windows 上使用 Python API 快速生成二维码?
    Python 是一种强大的编程语言,它可以用于各种各样的应用场景。其中,生成二维码是 Python 中的一个非常实用的功能。本文将介绍如何在 Windows 上使用 Python API 快速生成二维码。 一、安装 Python 在使用 P...
    99+
    2023-05-26
  • Python 打包 api:如何让你的代码更易于管理?
    Python 是一种广泛使用的编程语言,它提供了各种各样的库和模块,可以帮助你快速开发应用程序。但是,当你需要在多个项目中使用相同的代码时,管理代码可能变得很困难。这时,打包 api 就是一个非常有用的工具。在本文中,我们将介绍如何使用 ...
    99+
    2023-07-24
    打包 api 关键字
  • Dreamweaver CC2019代码如何快速对齐
    这篇文章主要介绍Dreamweaver CC2019代码如何快速对齐,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,我们点击电脑中安装好的Dreamweaver CC2019打开Dreamweaver CC201...
    99+
    2023-06-08
  • 如何快速让你的中文XP变成英文XP
    不管是为了多接触英文环境,还是因为其它用途, 有时我们还真希望我们的系统是英文的系统,而不是中文的. 有人会问,重装一个英文的XP系统不就可以了.当然你说得没错,不过,系统之家永远会有妙招,让您做更少的事情,完成更多的目...
    99+
    2023-06-02
    中文XP 英文XP 英文 XP 中文
  • 如何在Python中快速打包git同步您的代码?
    在软件开发中,Git是一个非常流行的版本控制工具。通过Git,您可以轻松地跟踪代码更改,协作开发项目,并确保您的代码始终保持最新状态。但是,当您需要将代码从一个环境移动到另一个环境时,Git同步可能会变得有些棘手。在这种情况下,Pytho...
    99+
    2023-09-15
    打包 git 同步
  • 分布式IDE中的Python NumPy:如何让你的代码更快?
    随着数据量的不断增长,Python NumPy成为了许多数据科学家和工程师的首选工具。然而,随着问题规模不断增大,单机运行的速度已经无法满足需求。为了解决这个问题,许多人开始考虑使用分布式计算来加速他们的代码。在本文中,我们将介绍如何在分...
    99+
    2023-10-30
    numpy 分布式 ide
  • 如何在Java中快速实现HTTP二维码API?
    在当今数字时代,二维码已经成为了一种重要的信息传递方式。它可以储存大量信息,且易于传播和识别。在Java开发中,我们也需要使用二维码来实现一些功能。本文将介绍如何在Java中快速实现HTTP二维码API。 一、什么是HTTP二维码API? ...
    99+
    2023-08-23
    http 二维码 api
  • 【零基础入门Python】26段简短代码带你快速上手Python
    01 运行方式 本文示例代码使用的Python版本为Python 3.6。运行Python代码有两种方式: 一种方式是启动Python,然后在命令窗口下直接输入相应的命令; 另一种方式就是将完整的代...
    99+
    2023-09-13
    python 开发语言 数据分析 青少年编程
  • pycharm如何使用键盘快速的选择代码
    这篇文章将为大家详细讲解有关pycharm如何使用键盘快速的选择代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用键盘快速的选择代码在编码中,我们选择代码并对其进行操...
    99+
    2024-04-02
  • Python asyncio 终极教程:为你的代码注入速度和效率
    简介 asyncio 是 Python 中一个异步 I/O 框架,旨在通过并发性提升应用程序的性能和可伸缩性。在 asyncio 中,I/O 操作不会阻塞主线程,而是由一个事件循环负责在后台调度。这使得应用程序可以处理大量并发请求,而无...
    99+
    2024-03-03
    Python asyncio 并发异步编程 I/O 操作 非阻塞
  • 如何用Cython加速Python代码
    今天就跟大家聊聊有关如何用Cython加速Python代码,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果你曾经用Python编写过代码,那么等待某些代码块执行的时间可能比您希望的...
    99+
    2023-06-02
  • 加速你的 Python 代码:掌握 asyncio 的奥秘
    Python、AsyncIO、并发、非阻塞、高性能 AsyncIO 是一个用于 Python 3.4+ 版本的异步编程框架,它可以在不阻塞主线程的情况下并发执行代码。这使得 Python 代码能够处理大量并发请求,而不会出现性能下降或响...
    99+
    2024-03-03
    掌握 asyncio 库是提升 Python 代码性能和响应速度的关键。本文将深入探讨 asyncio 的工作原理 并演示其在实际应用程序中的应用。
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作