⚠️ Python编写简易API

简介: Python编写简易API

本文约550字,将耗费您约4⃣️分钟


所有的操作,仅在mac系统上实操过


前期准备


创建一个虚拟环境:


$ mkdir flask_restful
$ cd flask_restful
$ python3 -m venv venv
复制代码


激活虚拟环境:


$ . venv/bin/activate
复制代码


虚拟环境退出:


$ deactivate
复制代码


安装flaskflask_restful


$ pip install flask
$ pip install flask_restful
复制代码


项目接口模拟


在项目的根目录下面新建文件api.py,在此文件中进行数据的增删改查。


⚠️ 这里使用到的数据为模拟数据,并未连接数据库


from flask import Flask, jsonify, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
USER_LIST = [{'id': 1, 'name': 'jimmy'}]
class UserListApi(Resource):
    def get(self):
        return {'code': 10000, 'msg': 'get list success', 'data': USER_LIST}
    def post(self):
        json_data = request.get_json()
        new_id = len(USER_LIST) + 1
        USER_LIST.append({'id': new_id, 'name': json_data.get('name')})
        return jsonify({'code': 10000, 'msg': 'add user success', 'data': USER_LIST[new_id-1]})
class UserApi(Resource):
    def get(self, id):
        return {'code': 10000, 'msg': 'get user success', 'data': {}}
    def put(self, id):
        return {'code': 10000, 'msg': 'update user success', 'data': {}}
    def delete(self, id):
        return {'code': 10000, 'msg': 'remove user success', 'data': {}}
api.add_resource(UserListApi, '/users')
api.add_resource(UserApi, '/users/<int:id>')
if __name__ == '__main__':
    app.run(debug=True)
复制代码


之后运行应用:


$ export FLASK_APP=api.py
$ export FLASK_ENV=development
$ flask run
复制代码


看到下面的输出,说明运行成功了:


* Serving Flask app "flaskr" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 577-682-777
复制代码


项目接口验证


在上面的代码中,我们对users进行了相关的增删改查,下面我们来验证下:


  • 新增一个用户


$ curl http://127.0.0.1:5000/users -X POST -H "Content-Type:application/json" -d '{"name": "tom"}'
{
  "code": 10000, 
  "data": {
    "id": 2, 
    "name": "tom"
  }, 
  "msg": "add user success"
}
复制代码


  • 查询整个用户列表


$ curl http://127.0.0.1:5000/users
{
    "code": 10000,
    "msg": "get list success",
    "data": [
        {
            "id": 1,
            "name": "jimmy"
        },
        {
            "id": 2,
            "name": "tom"
        }
    ]
}
复制代码


  • 更新一个用户


$ curl http://127.0.0.1:5000/users/1 -X PUT
{
    "code": 10000,
    "msg": "update user success",
    "data": {}
}
复制代码


  • 获取一个用户


$ curl http://127.0.0.1:5000/users/1
{
    "code": 10000,
    "msg": "get user success",
    "data": {}
}
复制代码


  • 删除一个用户


$ curl http://127.0.0.1:5000/users/1 -X DELETE
{
    "code": 10000,
    "msg": "remove user success",
    "data": {}
}



相关文章
|
22天前
|
JSON API 数据格式
python 使用 Stable Diffusion API 生成图片示例
本文提供了一个使用Python调用Stable Diffusion API生成图片的示例程序,包括启动API设置、发送POST请求、保存生成的图片和JSON数据,以及如何通过API调用特定模型的说明。
python 使用 Stable Diffusion API 生成图片示例
|
7天前
|
JSON API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
14 6
|
29天前
|
SQL 关系型数据库 MySQL
Python DB-API
【8月更文挑战第22天】
30 11
|
26天前
|
API 开发工具 网络架构
【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码
【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码
|
1月前
|
弹性计算 API 开发工具
揭秘Python与阿里云API的神秘邂逅!流式处理的魔法之旅,一场颠覆想象的技术盛宴!
【8月更文挑战第15天】在数字世界的广阔舞台上,Python与阿里云API的相遇,就像是一场命中注定的邂逅。它们携手共舞,为我们带来了流式处理的魔法之旅。本文将揭开这场神秘邂逅的面纱,带你领略Python与阿里云API之间的奇妙互动。让我们一起踏上这场颠覆想象的技术盛宴,探索流式处理的无限可能!
72 7
|
1月前
|
程序员 数据库连接 API
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
|
1月前
|
JSON 算法 API
京东以图搜图功能API接口调用算法源码python
京东图搜接口是一款强大工具,通过上传图片即可搜索京东平台上的商品。适合电商平台、比价应用及需商品识别服务的场景。使用前需了解接口功能并注册开发者账号获取Key和Secret;准备好图片的Base64编码和AppKey;生成安全签名后,利用HTTP客户端发送POST请求至接口URL;最后解析JSON响应数据以获取商品信息。
|
19天前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
44 0
|
20天前
|
JSON API 数据库
探索FastAPI:不仅仅是一个Python Web框架,更是助力开发者高效构建现代化RESTful API服务的神器——从环境搭建到CRUD应用实战全面解析
【8月更文挑战第31天】FastAPI 是一个基于 Python 3.6+ 类型提示标准的现代 Web 框架,以其高性能、易用性和现代化设计而备受青睐。本文通过示例介绍了 FastAPI 的优势及其在构建高效 Web 应用中的强大功能。首先,通过安装 FastAPI 和 Uvicorn 并创建简单的“Hello, World!”应用入门;接着展示了如何处理路径参数和查询参数,并利用类型提示进行数据验证和转换。
34 0
|
23天前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API