參考: http://www.pythondoc.com/flask-restful/first.html 什麼是Rest Client-Server:伺服器端與客戶端分離。 Stateless(無狀態):每次客戶端請求必需包含完整的信息,換句話說,每一次請求都是獨立的。 Cacheable(可緩存 ...
參考:
http://www.pythondoc.com/flask-restful/first.html
什麼是Rest
- Client-Server:伺服器端與客戶端分離。
- Stateless(無狀態):每次客戶端請求必需包含完整的信息,換句話說,每一次請求都是獨立的。
- Cacheable(可緩存):伺服器端必需指定哪些請求是可以緩存的。
- Layered System(分層結構):伺服器端與客戶端通訊必需標準化,伺服器的變更並不會影響客戶端。
- Uniform Interface(統一介面):客戶端與伺服器端的通訊方法必需是統一的。
- Code on demand(按需執行代碼?):伺服器端可以在上下文中執行代碼或者腳本?
GET |
獲取資源的信息 |
POST |
創建新資源 |
PUT |
更新資源 |
DELETE |
刪除資源 |
那麼先用flask 建立一個小小的Demo,假使你已經安裝了flask window –cmd- pip install flask
from flask import Flask app=Flask(__name__) @app.route("/") def index(): return "hello everybody" if __name__=='__main__': app.run(debug=True)
在CMD命令中輸入 python test1.py
會彈出 http://127.0.0.1:5000 。在瀏覽器中輸入即可,這是一個簡單的flask 應用就訪問成功。
先用flask 建立一個小服務,首先是get方法獲取
這裡的資料庫暫時不用,直接用Python的列表就行數據的增刪改查
GET查詢
# -*- coding: utf-8 -*- from flask import Flask,jsonify app=Flask(__name__) persons=[{'id':1,'name':'張三','address':'河南省'},{'id':2,'name':'李斯','address':'湖北省'}] @app.route('/api/list/personss',methods=['GET']) def Get_tasks(): results=jsonify({'person':persons}) return results if __name__=='__main__': app.run(debug=True)
稍微用了一個JSON序列化
通過ID獲取某一列數據
# -*- coding: utf-8 -*- from flask import Flask,jsonify app=Flask(__name__) @app.route('/api/list/person/<int:ids>',methods=['get']) def get_tasks_id(ids): return 'st' if __name__=='__main__': app.run(debug=True)
再通過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
然後我卻使用了 Flask 的視圖函數來定義所有的路由。當然這也行,但是總感覺不是 那麼一回事。
Resource 基礎類是flask提供的。
好累。再敘。