使用 Python 3和 Flask 设计 RESTful API
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用 Python 3和 Flask 设计 RESTful API,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3187字,纯文字阅读大概需要5分钟。
内容图文
![使用 Python 3和 Flask 设计 RESTful API](/upload/InfoBanner/zyjiaocheng/841/1eaf7fab900944f79b23c56f952a3ba2.jpg)
使用 Python 和 Flask 设计 RESTful API
参考文档:http://www.pythondoc.com/flask-restful/first.html
近些年来 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)
<filter object at 0x7fa09bb00400>
>>> 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方法的实现。
内容总结
以上是互联网集市为您收集整理的使用 Python 3和 Flask 设计 RESTful API全部内容,希望文章能够帮你解决使用 Python 3和 Flask 设计 RESTful API所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。