用Python写一个简单的api接口

这篇具有很好参考价值的文章主要介绍了用Python写一个简单的api接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python框架有很多,例如:Flask,Django,FastAPI 等。本文将使用 Flask 来编写 API 接口。

安装Flask

首先,您需要安装 Flask:

pip install flask

写主程序

接下来,我们可以创建一个名为 app.py 的文件,在其中编写 Flask 应用程序代码:

from flask import Flask, request

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def api():
    name = request.args.get('name')
    if name:
        return "Hello, " + name
    else:
        return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)

运行代码

python app.py

在浏览器中访问 http://localhost:5000/api,应该会返回 “Hello, World!”。
如果向该 URL 添加参数,例如 http://localhost:5000/api?name=YourName,则会返回 “Hello, YourName”。

我们还可以给它添加一个简单的token验证

以下代码来给 API 接口添加一个简单的 token 验证:

from flask import Flask, request

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def api():
    token = request.args.get('token')
    if token != 'secret_token':
        return "Invalid token", 401
    name = request.args.get('name')
    if name:
        return "Hello, " + name
    else:
        return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)

在上面的代码中,我们添加了一个 token 参数,并在该参数不为 secret_token 时返回一个 “Invalid token” 的错误响应(HTTP 状态代码 401)。
在实际生产环境中,应该使用更强大的身份验证方法,而不是仅仅使用简单的 token,但在本例中可以作为一个简单的示例。
在生产环境中,您应该使用更复杂的身份验证方法,例如:OAuth2,JWT 等。

在使用 Flask 的情况下,您可以使用第三方库,例如 Flask-OAuthlib 或 Flask-JWT-Extended 来实现身份验证。

下面是使用 Flask-JWT-Extended 实现身份验证的示例代码:

from flask import Flask, request
from flask_jwt_extended import (
    JWTManager, jwt_required, create_access_token,
    get_jwt_identity
)

app = Flask(__name__)

app.config['JWT_SECRET_KEY'] = 'secret-key'

jwt = JWTManager(app)

@app.route('/login', methods=['POST'])
def login():
    username = request.json.get('username', None)
    password = request.json.get('password', None)

    if username != 'test' or password != 'test':
        return {'message': 'Bad username or password'}, 401

    # identity is a simple string, like a username
    access_token = create_access_token(identity=username)
    return {'access_token': access_token}, 200

@app.route('/api', methods=['GET'])
@jwt_required
def api():
    current_user = get_jwt_identity()
    return "Hello, " + current_user

if __name__ == '__main__':
    app.run(debug=True)

在上面的代码中,我们定义了两个路由:/login 和 /api。在 /login 中,我们检查用户名和密码,如果正确,则创建一个 JWT 访问令牌并将其返回给用户。在 /api 中,我们使用 jwt_required 装饰器来确保该 API 只能被拥有 JWT 令牌的用户访问。

在实际生产环境中,应该使用更复杂的身份验证方法,例如:OAuth2,JWT 等。另外,还需要仔细考虑 JWT 秘密密钥的安全性,以防止任何恶意用户恢复或篡改 JWT 令牌。

为了确保身份验证过程的安全性,还应该在客户端使用 HTTPS 安全套接字层 (SSL/TLS) 连接到 API 接口,以防止数据在网络中被窃取。

请注意,这仅是一个简单的 JWT 身份验证示例,在生产环境中,可能需要更复杂的验证方法。因此,请确保在使用 JWT 或任何其他身份验证方法之前,完全了解其安全性,以确保你的 API 接口不会受到攻击。文章来源地址https://www.toymoban.com/news/detail-416018.html

到了这里,关于用Python写一个简单的api接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python ❀ 使用代码实现API接口调用详解

    本文主要讲解常用API接口如何使用python实现。 API :Application Programming Interface,是 应用程序开发接口 的缩写,意思是一些预设好的函数或方法,这些预设好的函数或方法允许第三方程序通过网络来调用数据或提供基于数据的服务。 Python运行环境:python3.10.2 + PyCharm 使用 pip

    2024年01月18日
    浏览(33)
  • Python爬虫学习笔记:1688商品详情API 开发API接口文档

      1688API接口是阿里巴巴集团推出的一种开放平台,提供了丰富的数据接口、转换工具以及开发资源,为开发者提供了通用的应用接口及大量数据资源,支持开发者在1688上进行商品搜索、订单管理、交易报表及物流等方面的操作。 1688API接口主要包含以下几类: 商品API:提供

    2024年02月16日
    浏览(29)
  • python接口自动化之request请求,如何使用 Python调用 API?

        尊重原创,转载请注明出处,谢谢!!

    2024年02月08日
    浏览(42)
  • Python调用API接口的几种方式

    Python调用API接口的几种方式 相信做过自动化运维的同学都用过API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。 本文主要介绍python中调用API的几种方式,下面是python中会用到的库。 - urllib2 - httplib2 - pycu

    2024年02月12日
    浏览(35)
  • 快速获取星座排盘API接口- python版

    根据输入的参数,查看某个星座的信息。 API:https://www.tanshuapi.com/market/detail-93 接口python请求示例 返回内容介绍: 根据出生的年月日,确定你的排盘等信息。 API:https://www.tanshuapi.com/market/detail-79 接口python请求示例 接口返回示例

    2024年02月01日
    浏览(49)
  • 如何利用python调用API接口获取数据进行测试

    一、Python 可以使用 requests 库来调用 API 接口获取数据。以下是基本的步骤: 1.安装 requests 库 pip install requests 2.导入 requests 库 import requests 3.构建 API 请求的 URL 根据 API 文档,构建请求的URL。 例如,  https://api.example.com/posts  是获取所有帖子的 URL。 4.发送 API 请求 使用  requ

    2024年02月11日
    浏览(39)
  • 使用python调用ChatGPT API 简单示例

    如果你已经获得了 OpenAI的API密钥 ,并且想要使用Python发起ChatGPT对话,你可以使用OpenAI的Python SDK来实现。下面是一个简单的示例代码: 首先,你需要确保已安装OpenAI的Python SDK。你可以使用pip来安装: 然后,你可以使用以下代码来发起对话: 确保将 \\\'YOUR_API_KEY\\\' 替换为你的实

    2024年02月12日
    浏览(33)
  • python3-Flask实现Api接口

    1、:python3-Flask实现Api接口_flask api_Shiro to kuro的博客-CSDN博客 2、  Flask框架的web开发01(Restful API接口规范)_flask patch post_~须尽欢的博客-CSDN博客

    2024年02月11日
    浏览(22)
  • 【最新|送API Key】零基础调用Anthropic Claude 3 API接口(Python)

    2024 年 Anthropic 发布了 Claude3,据官方测试比 GPT-4 更好,一夜之间爆火,引得不少开发者体验,本文参考Claude 3官方API,梳理了从零开始调用ClaudeAPI的操作方法。 Claude 是Anthropic 的LLM 应用程序(类似于 ChatGPT)。该库允许使用 API(免费)并在Python 项目中与之交互。 一、必要条

    2024年04月26日
    浏览(31)
  • Python爬取电商数据:商品采集接口 商品详情数据API 商品主图接口

    学习 Python 自动化的一个好办法就是构建一个价格追踪器。由于这项任务生成的脚本可以立即投入使用,所以对于初学者来说尤为方便。本文将向大家介绍如何用 Python 采集器建立一个可立即实现电商价格监控的可扩展价格追踪器。 价格监控的好处多多。对于您个人来说,通

    2023年04月24日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包