Flask:API的一种简易实现方式——MethodView
来源:互联网 发布:阿苏拉捏脸数据 编辑:程序博客网 时间:2024/05/28 19:23
Flask
为 RESTful APIs
提供了一种简易的实现方式,可以针对不同的HTTP方法提供不同的函数。使用也很简单,只需要继承 flask.views.MethodView
然后重写需要的方法:GET POST PUT
等。
下面是官方给的程序示例:
from flask.views import MethodViewclass UserAPI(MethodView): def get(self): users = User.query.all() ... def post(self): user = User.from_form_data(request.form) ...app.add_url_rule('/users/', view_func=UserAPI.as_view('users'))
最下面的 add_url_rule
是添加路由,和用装饰器的效果一样:
@app.route('/users/')def users(page): users = User.query.all() return render_template('users.html', users=users)
因为现在是视图类而不是视图函数,对类进行装饰器操作没有意义,如果想对视图函数添加装饰器,比如用户登陆检测,可以对 .as_view()
返回的函数进行装饰:
def user_required(f): """Checks whether user is logged in or raises error 401.""" def decorator(*args, **kwargs): if not g.user: abort(401) return f(*args, **kwargs) return decoratorview = user_required(UserAPI.as_view('users'))app.add_url_rule('/users/', view_func=view)
如何应对多种请求方法,比如用户信息管理:
官方给的实用小例子:
class UserAPI(MethodView): def get(self, user_id): if user_id is None: # return a list of users pass else: # expose a single user pass def post(self): # create a new user pass def delete(self, user_id): # delete a single user pass def put(self, user_id): # update a single user passuser_view = UserAPI.as_view('user_api')app.add_url_rule('/users/', defaults={'user_id': None}, view_func=user_view, methods=['GET',])app.add_url_rule('/users/', view_func=user_view, methods=['POST',])app.add_url_rule('/users/<int:user_id>', view_func=user_view, methods=['GET', 'PUT', 'DELETE'])
阅读全文
0 0
- Flask:API的一种简易实现方式——MethodView
- Pyhton日记——Flask写一个简易的知乎日报API
- IOC的一种简易实现
- 【Flask】Flask实现密码存储安全性的两种方式
- 一种简易数字波形存储器的实现
- 一种更为简易的tab实现
- 一种“邻居环”的简易实现
- IOC的一种简易实现(二)
- IOC的一种简易实现(三)
- IOC的一种简易实现(四)
- Java回调的一种简易实现
- 乐观锁的一种实现方式——CAS
- 乐观锁的一种实现方式——CAS
- 乐观锁的一种实现方式——CAS
- MVC的一种实现方式
- hotfix 的一种实现方式
- 使用python的Flask实现一个RESTful API服务器端[翻译]
- 使用python的Flask实现一个RESTful API服务器端[翻译]
- TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
- (封装xml)访问HTTP 接口2
- Android仿今日头条的开源项目
- 用sqlplus导出oracle数据
- seo视频教程:网站文章更新。
- Flask:API的一种简易实现方式——MethodView
- c#基本类型
- ubuntu常用命令及系统维护
- pwnable 之brainfuck
- 每次重启服务器tomcat开启时报错
- Web服务器压力测试工具http_load、webbench、ab、Siege使用教程
- 作业
- WiFi-ESP8266入门开发(三)-网页客户端
- 算法导论思考题14-2 Josephus permutation 约瑟夫排列