Flask-RESTful的介绍和简单使用

1、Restful的介绍

        Flask-RESTful是用于快速构建REST API的Flask扩展。

1.1 Restful接口规范

        REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

        RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。

        它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次。

        RESTful接口规范是用于在前端与后台进行通信的一套规范。使用这个规范可以让前后端开发变得更加轻松。

1.2 Restful使用协议

        用http或者https协议。

1.3 数据传输格式

        数据传输的格式应该都用json格式。

1.4 适用场景

一个系统的数据库数据,展现的平台有PC端、移动端、app端、ios端。

  • 前端工程师:都遵循RESTful编程规范
  • 后端工程师:都遵循RESTful编程规范
  • 最终结果:开发效率高,便于管理

1.5 url链接规则

url链接中,不能有动词,只能有名词。

并且对于一些名词,如果出现复数,那么应该在后面加s。

比如:获取新闻列表,应该使用 /news/ ,而不应该使用/get_news/

1.6 HTTP请求方式

  • GET:从服务器上获取资源。
  • POST:在服务器上新增或者修改一个资源。
  • PUT:在服务器上更新资源。(客户端提供所有改变后的数据)
  • PATCH:在服务器上更新资源。(客户端只提供需要改变的属性)
  • DELETE:从服务器上删除资源。

1.7 状态码

2、Restful基本使用

2.1 优缺点

优势

  • Flask-Restful是一个专门用来写restful api的一个插件。
  • 使用它可以快速的集成restful api接口功能。
  • 在系统的纯api的后台中,这个插件可以帮助我们节省很多时间。

缺点

  • 如果在普通的网站中,这个插件就没有优势了,因为在普通的网站开发中,是需要去渲染HTML代码的,而Flask-Restful在每个请求中都是返回json格式的数据。

2.2 安装

pip install flask-restful

2.3 基本使用

定义Restful的类视图

1. 从 flask_restful 中导入 Api ,来创建一个 api 对象。

2. 写一个类视图,让他继承自 Resource 类,然后在这个里面,使用你想要的请求方式来定义相应的方法,比如你想要将这个类视图只能采用 post 请求,那么就定义一个 post 方法。

3. 使用 api.add_resource 来添加类视图与 url 。

注意

  • 如果你想返回json数据,那么就使用flask_restful,如果你是想渲染模版,那么还是采用之前的方式,就是 app.route 的方式。
  • url还是跟之前的一样,可以传递参数。也跟之前的不一样,可以指定多个url。
  • endpoint是用来给url_for反转url的时候指定的。如果不写endpoint,那么将会使用视图的名字的小写来作为endpoint。
  • add_resource的第二个参数是访问这个视图函数的url,这个url可以跟之前的route一样,可以传递参数,并且还有一点不同的是,这个方法可以传递多个url来指定这个视图函数。

示例代码1:

from flask import Flask
from flask_restful import Resource, Api

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


class HelloWorldResource(Resource):
    def get(self):
        return {'hello': 'world'}

    def post(self):
        return {'msg': 'post hello world'}


api.add_resource(HelloWorldResource, '/')

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

运行结果:

示例代码2:

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


app = Flask(__name__)
# 建立Api对象,并绑定应用APP
api = Api(app)


class LoginView(Resource):
    def get(self):
        return {"flag": True}

    def post(self):
        return {"flag": False}


# # 建立路由映射
# api.add_resource(LoginView, '/login/')
#
# with app.test_request_context():
#     # werkzeug.routing.BuildError: Could not build url for endpoint 'login'. Did you mean 'loginview' instead?
#     # 默认没有写endpoint反向url_for函数通过小写函数名
#     # 如果有多个url,会返回第1个URL
#     # print(url_for('loginview'))
#     print(url_for('login'))


# 建立路由映射
api.add_resource(LoginView, '/login/', '/login2/', endpoint='login')

with app.test_request_context():
    # 默认没有写endpoint反向url_for函数, 通过小写函数名实现
    # 如果有多个url,会返回第1个URL
    # print(url_for('loginview'))
    print(url_for('login'))


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

运行结果:

示例代码3:

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


app = Flask(__name__)
# 建立Api对象,并绑定应用APP
api = Api(app)


class LoginView(Resource):
    def get(self):
        return {"flag": True}

    def post(self):
        return {"flag": False}


class Loginview(Resource):
    def get(self):
        return {"flag2": True}

    def post(self):
        return {"flag2": False}


# 建立路由映射
# api.add_resource(LoginView, '/login/', '/login2/', endpoint='login')
api.add_resource(LoginView, '/login/', '/login2/')
# api.add_resource(Loginview, '/login_lower/', '/login2_lower/', endpoint='login2')
api.add_resource(Loginview, '/login_lower/', '/login2_lower/')


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

运行结果:

注意:使用视图函数时,类名.lower()的值不能相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`Flask-RESTful` 是 Flask 的一个扩展,它使创建 RESTful API 变得更加容易。使用 Flask-RESTful,你可以使用 Python 类来定义资源(Resource),并使用 Flask 的路由系统来将 URL 映射到这些资源上。 Flask-RESTful 提供了一组类和方法来处理 HTTP 请求和响应,例如 `Resource`、`Api`、`reqparse` 等。其中,`Resource` 类表示一个 RESTful 资源,它封装了 HTTP 请求和响应的处理逻辑。`Api` 类表示整个 RESTful API,它可以将多个资源组合在一起,并将它们映射到 URL 上。`reqparse` 类用于解析和验证 HTTP 请求参数。 下面是一个简单使用 Flask-RESTful 的示例: ``` from flask import Flask from flask_restful import Api, Resource, reqparse app = Flask(__name__) api = Api(app) class HelloWorld(Resource): def get(self): return {'hello': 'world'} api.add_resource(HelloWorld, '/') if __name__ == '__main__': app.run(debug=True) ``` 在上面的示例中,`HelloWorld` 类继承自 `Resource` 类,表示一个 RESTful 资源。`get()` 方法表示处理 HTTP GET 请求的逻辑,它返回一个 JSON 响应。`api.add_resource()` 方法将 `HelloWorld` 资源映射到根 URL 上。当用户访问根 URL 时,Flask-RESTful 将自动调用 `HelloWorld` 资源的 `get()` 方法,并返回 JSON 响应。 Flask-RESTful 还支持其他 HTTP 方法,例如 POST、PUT、DELETE 等。你可以根据实际需求定义不同的资源和方法,以创建一个完整的 RESTful API。 总之,Flask-RESTful 是一个非常方便的 Flask 扩展,可以帮助你轻松地创建 RESTful API,从而提供 Web 服务和数据接口。它提供了一组类和方法,使 HTTP 请求和响应的处理变得更加简单和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值