前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >⚠️ Python编写简易API

⚠️ Python编写简易API

作者头像
Jimmy_is_jimmy
发布2022-03-10 13:56:27
8630
发布2022-03-10 13:56:27
举报
文章被收录于专栏:call_me_Rcall_me_R

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

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

前期准备

创建一个虚拟环境:

代码语言:javascript
复制
$ mkdir flask_restful
$ cd flask_restful
$ python3 -m venv venv

激活虚拟环境:

代码语言:javascript
复制
$ . venv/bin/activate

虚拟环境退出:

代码语言:javascript
复制
$ deactivate

安装flaskflask_restful

代码语言:javascript
复制
$ pip install flask
$ pip install flask_restful

项目接口模拟

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

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

代码语言:javascript
复制
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)

之后运行应用:

代码语言:javascript
复制
$ export FLASK_APP=api.py
$ export FLASK_ENV=development
$ flask run

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

代码语言:javascript
复制
 * 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进行了相关的增删改查,下面我们来验证下:

  • 新增一个用户
代码语言:javascript
复制
$ 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"
}
  • 查询整个用户列表
代码语言:javascript
复制
$ curl http://127.0.0.1:5000/users

{
    "code": 10000,
    "msg": "get list success",
    "data": [
        {
            "id": 1,
            "name": "jimmy"
        },
        {
            "id": 2,
            "name": "tom"
        }
    ]
}
  • 更新一个用户
代码语言:javascript
复制
$ curl http://127.0.0.1:5000/users/1 -X PUT

{
    "code": 10000,
    "msg": "update user success",
    "data": {}
}
  • 获取一个用户
代码语言:javascript
复制
$ curl http://127.0.0.1:5000/users/1

{
    "code": 10000,
    "msg": "get user success",
    "data": {}
}
  • 删除一个用户
代码语言:javascript
复制
$ curl http://127.0.0.1:5000/users/1 -X DELETE

{
    "code": 10000,
    "msg": "remove user success",
    "data": {}
}

后话

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/03/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前期准备
  • 项目接口模拟
  • 项目接口验证
  • 后话
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档