Flask restful api与blueprint结合实践

所需依赖:

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

原文地址:http://blog.51cto.com/yangrong/2294308

时间: 2024-11-06 19:37:45

Flask restful api与blueprint结合实践的相关文章

快速创建Flask Restful API项目

前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful api服务的时候就需要我们来规划项目结构. Django 框架有自身的生成项目结构的命令和生成app的命令,但是Flask没有. 这篇文章主要介绍使用工具帮助我们进行一些Flask rest api项目初始化的工作 cookiecutter-flask-restful 介绍 cookiecutter-

RESTful API的十个最佳实践

WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇. 通常我们使用RESTFul(Representational State Transfer)的设计方式来设计Web api,这通常用来分离API结构了业务逻辑,它使用典型的HTTP方法,诸如GET,POST.DELETE,PUT来和资源进行交互. 以下是设计RESTful API的是个最佳实践: 1. 使用名词而不是动词 为了易于理

Restful API的设计与实践

Restful这个名称应该很多人都不陌生,但是我发现不少人对Restful存在或多或少的理解偏差,其中不泛比较厉害的程序员,所以有必要为Restful来"正名". Restful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制.(详见百度百科介绍) Restful的关键是抽取资源,使用URL与资源进行对应.这边也是多数人理解有偏差之处,即Restful应该理解

Flask restful API如何解决跨站请求问题

如果像下面这样只是在return的response添加header是不行的: response = make_response(jsonify(response=get_articles(ARTICLES_NAME))) response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Methods'] = 'POST' response.headers['Access-Co

如何设计好的RESTful API之安全性

原文:http://blog.csdn.net/ywk253100/article/details/25654101 导读:安全是恒久的话题,对于基于WSDL和SOAP的Web Service,我们有WS-Security这样的安全规范来指导实现认证.授权.身份管理等安全需求.如何保证RESTful API的安全性呢. 关键词:RESTful API API安全性 前面讲了好的RESTful API具有的一些特征,本文会继续探讨RESTful API的安全性问题. InfoQ:安全是恒久的话题,

虚拟研讨会:如何设计好的RESTful API(转)

原文:虚拟研讨会:如何设计好的RESTful API? REST架构风格最初由Roy T. Fielding(HTTP/1.1协议专家组负责人)在其2000年的博士学位论文中提出.HTTP就是该架构风格的一个典型应用.从其诞生之日开始,它就因其可扩展性和简单性受到越来越多的架构师和开发者们的青睐.它必将得到更大的发展.一方面,随着云计算和移动计算的兴起,许多企业愿意在互联网上共享自己的数据.功能:另一方面,在企业中,RESTful API(也称RESTful Web服务)也逐渐超越SOAP成为实

java restful api

开发RESTful API的需求范围很广,可选择的开发框架的范围也很广.保持多样性是繁荣生态环境的基础.像Java就有支持JAX-RS规范的Jersey.RESTEasy.Restlet.Apache CXF,和不支持JAX-RS规范的Spring MVC等等很多框架.这些框架目前都做的不错.我对框架的选择没有倾向性.RESTful API设计的最佳实践应该是通用的,而不是必须依赖某种特定的开发框架.

[flask]Restful接口测试简单的应用

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : shenqiang from flask import Flask,make_response,jsonify from flask_restful import Resource,Api,reqparse '''实例化Flask这个类''' app = Flask(__name__) '''调用flask Restful''' api = Api(app=app) '''配置in

如何用rflask快速初始化Flask Restful项目

如何用rflask快速初始化Flask Restful项目 说明 多啰嗦两句 我们在创建flask项目的时候,使用pycharm创建出来的项目比较简陋,而且随着项目的功能完善,项目目录结构会比较多,多个项目结构又不统一,熟悉项目需花费时间比较多,项目发布配置又需要自己重新写一套.本文章是针对Flask Restful Api项目进行的快速初始化,对于没有前后端分离的Flask项目也可作为参考. 安装rflask pip安装: pip install rflask 下载源码安装: 源码地址:htt