flask restful mysql_Flask restful api与blueprint结合实践

本文档展示了如何使用Flask-RESTful和Blueprint构建RESTful API,并介绍了资源与HTTP方法的对应关系。通过创建蓝图为'servers'和'server'资源注册路由,实现了GET(获取数据)、POST(新增数据)、PUT(修改数据)、DELETE(删除数据)功能。通过curl命令进行了实际操作的演示。
摘要由CSDN通过智能技术生成

所需依赖:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值