Flask restful api与blueprint结合实践

栏目: Python · 发布时间: 7年前

内容简介:所需依赖:备注:flask-restful不能和flask的render_template模板结合使用,因为restfulapi的设计不是为了在flask里直接返回html。在使用restful时,使用前后端分离模式。

所需依赖:

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设计模式,参考文章: RESTful API 设计指南

1、目录结构

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

2、assets下文件配置

__init__.py

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

urls.py

#coding:utf-8
from assets import assets_page  
from flask_restful import Resource, Api
from server import Servers, Server 

api = Api(assets_page)

#注册路由
api.add_resource(Servers, '/servers')
api.add_resource(Server, '/servers/<_id>')

server.py

#coding:utf-8
from flask import request
from flask_restful import Resource, Api

class 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-8
from flask import Flask
#导入蓝图实例
from assets import assets_page

app = 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系列操作数据库的文章


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏编程中的人工智能技术

游戏编程中的人工智能技术

布克兰德 / 吴祖增 / 清华大学出版社 / 2006-5 / 39.0

《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。 《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开......一起来看看 《游戏编程中的人工智能技术》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具