Flask_RESTful的基本使用
优势:
Flask-Restful
是一个专门用来写restful api
的一个插件
。- 使用它可以快速的集成
restful api
接口功能。 - 在系统的纯
api
的后台中,这个插件可以帮助我们节省很多时间。
缺点:
- 如果在普通的网站中,这个插件就没有优势了,因为在普通的网站开发中,是需要去渲染
HTML
代码的, - 而
Flask-Restful
在每个请求中都是返回json
格式的数据。
安装
pip install flask-restful
基本使用
定义Restful的类视图:
- 从
flask_restful
中导入Api
,来创建一个api
对象。 - 写一个
类视图
,让它承自Resource
类,然后在类视图中,使用想要的请求方式来定义相应的方法,比如想要将这个·类视图·只能采用post
请求,那么就定义一个post
方法。 - 使用
api.add_resource
来添加类视图与url
。
from flask import Flask,url_for,render_template
from flask_restful import Api,Resource
app = Flask(__name__)
# 创建一个api对象
api = Api(app)
#定义一个类视图
class LoginView(Resource):
def post(self):
return {"flag":"yes"} #字典
def get(self):
return {"flag":"no"}
# api.add_resource(LoginView,'/login/')
#可支持多个url映射
api.add_resource(LoginView,'/login/','/login2/',endpoint="login")
#应用上下文
with app.test_request_context():
#不写`endpoint`,那么将会使用视图的名字的小写(所有都小写)来作为`endpoint`。
# print(url_for('loginview'))
#如果指定了endpoint,就只能使用endpoint指定的值创建url
print(url_for('login'))
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
注意:
- 如果你想返回
json
数据,那么就使用flask_restful
,如果你是想渲染模版,那么还是采用之前的方式,就是app.route
的方式。 url
还是跟之前的一样,可以传递参数。也跟之前的不一样,可以指定多个url
。endpoint
是用来给url_for
反转url
的时候指定的。如果不写endpoint
,那么将会使用视图的名字的小写来作为endpoint
。- 可以使用
postman接口测试工具
测试post
等请求结果。