您好,登錄后才能下訂單哦!
所需依賴:
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 設計指南
.
├── assets
│?? ├── __init__.py
│?? ├── server.py
│?? ├── urls.py
├── run.py
__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)
#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)
在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系列操作數據庫的文章
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。