本文共 2053 字,大约阅读时间需要 6 分钟。
所需依赖:
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设计模式,参考文章:
.├── assets│ ├── __init__.py│ ├── server.py│ ├── urls.py├── run.py
__init__.py
from flask import Blueprintassets_page = Blueprint('assets_page', __name__)import urls
urls.py
#coding:utf-8from assets import assets_page from flask_restful import Resource, Apifrom server import Servers, Server api = Api(assets_page)#注册路由api.add_resource(Servers, '/servers')api.add_resource(Server, '/servers/<_id>')
server.py
#coding:utf-8from flask import requestfrom flask_restful import Resource, Apiclass 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)
#coding:utf-8from flask import Flask#导入蓝图实例from assets import assets_pageapp = 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)
在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系列操作数据库的文章
转载于:https://blog.51cto.com/yangrong/2294308