博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask restful api与blueprint结合实践
阅读量:6305 次
发布时间:2019-06-22

本文共 2053 字,大约阅读时间需要 6 分钟。

所需依赖:

Flask

Flask-RESTful
Python2.7

备注:flask-restful不能和flask的render_template模板结合使用,因为restfulapi的设计不是为了在flask里直接返回html。

在使用restful时,使用前后端分离模式。

本文档不包含flask的认证登陆功能

restful说明


restful把所有url请求当做资源, 资源下的get方法对应get请求,post方法对应post请求,put方法对应put请求,delete方法对应delete请求。

get请求,post新增, put修改, delete删除

具体的url设计模式,参考文章:

1、目录结构

.├── assets│   ├── __init__.py│   ├── server.py│   ├── urls.py├── run.py

2、assets下文件配置

__init__.py

from flask import Blueprintassets_page = Blueprint('assets_page', __name__)import urls

urls.py

#coding:utf-8from assets import assets_page  from flask_restful import Resource, Apifrom server import Servers, Server api = Api(assets_page)#注册路由api.add_resource(Servers, '/servers')api.add_resource(Server, '/servers/<_id>')

server.py

#coding:utf-8from flask import requestfrom flask_restful import Resource, Apiclass Servers(Resource):   def get(self):     #返回所有数据     return 'this is data list'   def post(self):     #新增数据     data = request.get_json()     return 'add new data: %s'%data  class Server(Resource):   def get(self,_id):     #返回单条数据      return 'this data is %s'%_id   def delete(self,_id):     #删除单条数据     return 'delete data: %s'%_id   def put(self, _id):     #修改单条数据     data = request.get_json()     return 'put data %s: %s'%(_id, data)

3、run.py配置

#coding:utf-8from flask import Flask#导入蓝图实例from assets import assets_pageapp = Flask(__name__,            template_folder='templates',            static_folder='static',            )#注册蓝图app.register_blueprint(assets_page)if __name__ == '__main__':    app.run(host='0.0.0.0', port=5000, debug=True)

4、测试

在linux终端测试

#获取列表:  $ curl  127.0.0.1:5000/servers"this is data list"#新增数据  $ curl -X POST -H "Content-Type:application/json" -d '{"name":"yangr"}' 127.0.0.1:5000/servers"add new data: {u'name': u'yangr'}"  #修改数据  $ curl -X PUT -H "Content-Type:application/json" -d '{"name":"yangr"}' 127.0.0.1:5000/servers/2"put data 2: {u'name': u'yangr'}"  #删除数据  $ curl -X DELETE 127.0.0.1:5000/servers/3"delete data: 3"

后续再出sqlalchemy系列操作数据库的文章

转载于:https://blog.51cto.com/yangrong/2294308

你可能感兴趣的文章
双显卡安装Fedora 20
查看>>
异常处理
查看>>
javax.xml.ws.soap.SOAPFaultException: 没有Header,拦截器实施拦截
查看>>
Activity启动模式 及 Intent Flags 与 栈 的关联分析
查看>>
Java知多少(65)线程的挂起、恢复和终止
查看>>
response.setHeader各种使用方法
查看>>
OutputCache祥解
查看>>
jquery序列化form表单使用ajax提交后处理返回的json数据
查看>>
less命令
查看>>
[译] Paxos算法详解
查看>>
在Eclipse在使用JUnit4单元测试(0基础知识)
查看>>
Linq之Lambda表达式初步认识
查看>>
cas改造随笔
查看>>
Linux命令-某个用户组下面的所有用户
查看>>
vc6.0如何显示行号以及出现版本不兼容问题
查看>>
【Telnet】使用Telnet协议连接到远程Shell执行脚本
查看>>
VirtualBox 安装增强功能失败 解决方法
查看>>
服务注册发现Eureka之二:高可用服务注册中心
查看>>
Linux 配置双机SSH信任
查看>>
第2章 Selenium2-java 测试环境搭建
查看>>