python flask restful_使用 Python 3和 Flask 设计 RESTful API

使用 Python 和Flask设计RESTful API

近些年来 REST (REpresentational State Transfer) 已变成web services和web APIs的标配。本文将展示如何简单地使用 Python 和Flask框架来创建一个RESTful的web service.安装了 Flask,现在开始创。一个简单地网页应用,我们把它放在一个叫app.py的文件中:

1、配置简单启动demo

代码如下,启动方式如下。

[root@openshift flask]# vim app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')

def index():

return "Hello, World!"

if __name__ == '__main__':

app.run(debug=True,host='172.16.16.71',port=5000)

[root@openshift flask]# python app.py

[root@openshift ~]# curl http://172.16.16.71:5000/

Hello, World!

2、使用 Python 和Flask实现RESTful services

使用 Flask 构建web services是十分简单地,比在Flask中有许多扩展来帮助我们构建RESTful services。

如下源代码,

[root@openshift flask]# vim app.py

#coding:utf8

from flask import Flask,jsonify

app = Flask(__name__)

jobs = [

{

'id': 1,

'post': u'运维工程师',

'level':'professor'

},

{

'id': 2,

'post': '产品经理',

'level':'primary'

}

]

@app.route('/todo/api/v1.0/tasks', methods=['GET'])

def get_tasks():

return jsonify({'jobs':jobs})

if __name__ == '__main__':

app.run(debug=True,host='172.16.16.71',port=5000)

该demo实现的是使用GET方法获取json数据

3、使用POST方法插入json数据

首先了解一下Python3+filter用法

>>> jobs= [{'id':1,'post':'sale'},{'id':2,'post':'boss'},{'id':3,'post':'tech'},{'id':4,'post':'test'}]

>>> job = filter(lambda t: t['id'] == 2, jobs)

>>> print(job)

>>> print(list(job))

[{'id': 2, 'post': 'boss'}]

>>> print(list(job))      //再次输入,值为空

[]

>>> print(len(list(job)))

0

接下来就是 POST 方法,我们用来在我们的任务数据库中插入一个新的任务:

from flask import request

@app.route('/todo/api/v1.0/tasks', methods=['POST'])def create_task():

if not request.json or not 'title' in request.json:

abort(400)

task = {

'id': tasks[-1]['id'] + 1,

'title': request.json['title'],

'description': request.json.get('description', ""),

'done': False

}

tasks.append(task)

return jsonify({'task': task}), 201

如下,是测试代码和测试方法

[root@openshift flask]# curl -i -H "Content-Type: application/json" -X POST -d '{"post":"manager"}' http://172.16.16.71:5000/todo/api/v1.0/tasks

4、使用PUT方法修改json数据

使用DELETE方法删除json数据

delete_task 函数没有什么特别的。对于update_task函数,我们需要严格地检查输入的参数以防止可能的问题。我们需要确保在我们把它更新到数据库之前,任何客户端提供我们的是预期的格式。

[root@openshift flask]# curl -i -H "Content-Type: application/json" -X PUT -d '{"post":asdasdasdad}' http://172.16.16.71:5000/todo/api/v1.0/tasks/2

PUT(修改)和DELETE(删除)方法。

[root@openshift flask]# curl -i -H "Content-Type: application/json" -X PUT -d '{"post":"man","level":"chuji"}' http://172.16.16.71:5000/todo/api/v1.0/tasks/2

[root@openshift flask]# curl -i -H "Content-Type: application/json" -X DELETE -d http://172.16.16.71:5000/todo/api/v1.0/tasks/2

自此,完成了restful接口GET、POST、PUT、DELETE方法的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值