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


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

查看所有标签

猜你喜欢:

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

PHP for the World Wide Web, Second Edition (Visual QuickStart Gu

PHP for the World Wide Web, Second Edition (Visual QuickStart Gu

Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99

So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

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

URL 编码/解码