构建以flask-restful为基础的restful API

原文链接:https://dev.to/aligoren/building-basic-restful-api-with-flask-restful-57oh

这是我第一次在我的博客上发送这篇文章

大家好,在这篇文章中,我将讲述关于使用构建以flask框架为基础的restful API。在开始之前,我们应该安装Flask RESTful库。在本例中我们不会使用任何数据库,但是你可以使用你自己的。我将展示如何使用flask创建restful API。

构建以flask-restful为基础的restful API

我们可能需要使用Postman或者是其他相似的软件来发送请求。我们将使用虚拟环境来作为开发环境。好了,我们先来安装 flask-restful库


激活虚拟环境

virtualenv .

. bin/activate

virtualenv . 表示在虚拟环境virtualenv中

.bin/activate 表示在虚拟目录下的active文件


我们已经激活了虚拟环境 现在我们来安装flask-rustful库


安装flask-rustful库

pip install flask-restful

现在,我们已经安装好了flask-rustful库。我们需要创建一个名为 main.py 的文件。这个名字可以是任意的,不一定是main.py。首先 我们需要导入flaskflask_restful库。


导入flaskflask_restful

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

接下来,我们要创建一个简单的类,这个类大概是下面这样:

get请求

class Quotes(Resource):
    def get(self):
        return {
            'ataturk': {
                'quote': ['Yurtta sulh, cihanda sulh.', 
                    'Egemenlik verilmez, alınır.', 
                    'Hayatta en hakiki mürşit ilimdir.']
            },
            'linus': {
                'quote': ['Talk is cheap. Show me the code.']
            }

        }

 在这个类当中,我们使用的是静态数据,就像我之前说的 能够使用自己的数据 一样,现在,我们需要把这个类作为一个资源添加到包装类的API中。

api.add_resource(Quotes, '/')

 最后,我们的代码应该是这样的:

# -*- coding: utf-8 -*-

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class Quotes(Resource):
    def get(self):
        return {
            'ataturk': {
                'quote': ['Yurtta sulh, cihanda sulh.', 
                    'Egemenlik verilmez, alınır.', 
                    'Hayatta en hakiki mürşit ilimdir.']
            },
            'linus': {
                'quote': ['Talk is cheap. Show me the code.']
            }

        }


api.add_resource(Quotes, '/')

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

 在上面的代码中,我们为HTTP的Get请求创建了一个名为get的方法。我们在postman当中尝试过了,尝试结果如下:

9uttstif5hzgmqcfo75q.png (880Ã511)

当你尝试还没有实现的HTTP请求是,你将会看到的信息应该是下面这样:

{
    "message": "The method is not allowed for the requested URL."
}

post请求

例如,你想要在这个类上使用post请求。你必须创建一个名为post的方法。现在我们来为HTTP Post请求创建post方法。首先,我们需要导入reqparse。所以,我们的导入语句应该变得像下面这样:

from flask import Flask
from flask_restful import Resource, Api, reqparse

app = Flask(__name__)
api = Api(app)

 然后,我们的post请求将像这样:

def post(self):
        parser.add_argument('quote', type=str)
        args = parser.parse_args()

        return {
            'status': True,
            'quote': '{} added. Good'.format(args['quote'])
        }

现在让我们在postman中尝试一个简单的HTTP Post请求:

wrhocz6jvjdpwknavbqg.png (880Ã379)

 put请求

让我们来创建一个 PUT 方法来更新这个资源。我们的put方法将像这样:

def put(self, id):
        parser.add_argument('quote', type=str)
        args = parser.parse_args()

        return {
            'id': id,
            'status': True,
            'quote': 'The quote numbered {} was updated.'.format(id)
        }

然后,我们需要改变我们的资源就像这样:

api.add_resource(Quotes, '/', '/update/<int:id>')

我们使用 postman 创建了一个 HTTP Put 请求。

0ohbzpqvqgkc50j6itmo.png (880Ã360)

如果你想询问PUT 和 POST,你可以点击这个 链接 。我们可以创建一个DELETE方法。在这篇文章中,我没有创建 HTTP DELETE方法。你可以通过这个 链接 访问更多关于Flask-RESTful的更多细节。

在这篇文章中,我们谈论了使用 Flask 构建 Basic RestFul API 。我希望这篇文章会帮助你设计一个出色的RESTful API。

感谢你的阅读。

猜你喜欢

转载自blog.csdn.net/qq_41096996/article/details/83868185
今日推荐