# coding:utf-8
# author:eycode
# 该æä»¶ç¨äºæä¾æµè¯æ¥å£
# Flask + API模å
# 卿¬ä»£ç æ¡ä¾ä¸å¿
é¡»å®è£
两个模åï¼
# flask模åï¼pip install flask
# httpè®¤è¯æ¨¡å(flask-httpauth)ï¼pip install flask-httpauth
# åèå°åï¼
# RESTful API䏿çï¼http://www.pythondoc.com/flask-mega-tutorial/index.html
# RESTful APIå¿«éå
¥é¨ï¼http://www.cnblogs.com/kaituorensheng/p/4645080.html
# RESTful API宿¹çæ¬ï¼http://flask-restless.readthedocs.io/en/stable/api.html
# Flask宿¹ï¼http://www.pythondoc.com/flask-mega-tutorial/index.html
from flask import Flask, jsonify
# ç®åçæ¬ï¼
# app = Flask(__name__)
# @app.route('/')
# def index():
# return "Hello Python"
# if __name__ == "__main__":
# app.run(debug=True)
# æ
# app.run(host='0.0.0.0',port=9000)
# æµè¯ï¼æå¼æµè§å¨è¾å
¥ï¼http://127.0.0.1:5000
# è¿åç»æï¼
# Hello Python
# ç®ååæï¼
# 第9è¡ï¼appæ¯Flaskçå®ä¾ï¼å®æ¥æ¶å
æè
模åçååä½ä¸ºåæ°ï¼ä½ä¸è¬é½æ¯ä¼ é__name__ã
# 让flask.helpers.get_root_path彿°éè¿ä¼ å
¥è¿ä¸ªååç¡®å®ç¨åºçæ ¹ç®å½ï¼ä»¥ä¾¿è·å¾éææä»¶åæ¨¡æ¿æä»¶çç®å½
# 第11~13è¡ï¼ä½¿ç¨app.routeè£
饰å¨ä¼å°URLåæ§è¡çè§å¾å½æ°çå
³ç³»ä¿åå°app.url_map屿§ä¸ã
# å¤çURLåè§å¾å½æ°çå
³ç³»çç¨åºå°±æ¯è·¯ç±ï¼è¿éçè§å¾å½æ°å°±æ¯hello_worldã
# 第16è¡ï¼æ§è¡app.runå°±å¯ä»¥å¯å¨æå¡äºãé»è®¤Flaskåªçå¬èææºçæ¬å°127.0.0.1è¿ä¸ªå°åï¼ç«¯å£ä¸º5000ã
# èæä»¬å¯¹èææºåç端å£è½¬åç«¯å£æ¯9000ï¼æä»¥éè¦å¶å®hoståportåæ°ï¼0.0.0.0表示ç嬿æå°åï¼è¿æ ·å°±å¯ä»¥å¨æ¬æºè®¿é®äºã
# æå¡å¨å¯å¨åï¼ä¼è°ç¨werkzeug.serving.run_simpleè¿å
¥è½®è¯¢ï¼é»è®¤ä½¿ç¨åè¿ç¨å线ç¨çwerkzeug.serving.BaseWSGIServerå¤ç请æ±ï¼
# å®é
ä¸è¿æ¯ä½¿ç¨æ ååºBaseHTTPServer.HTTPServerï¼éè¿select.selectå0.5ç§çâwhile TRUEâçäºä»¶è½®è¯¢ã
# å½æä»¬è®¿é®âhttp://127.0.0.1:9000/â,éè¿app.url_mapæ¾å°æ³¨åçâ/âè¿ä¸ªURL模å¼,å°±æ¾å°äºå¯¹åºçhello_world彿°æ§è¡ï¼è¿åâhello world!â,ç¶æç 为200ã
# å¦æè®¿é®ä¸ä¸ªä¸åå¨çè·¯å¾ï¼å¦è®¿é®âhttp://127.0.0.1:9000/aâ,Flaskæ¾ä¸å°å¯¹åºç模å¼ï¼å°±ä¼åæµè§å¨è¿åâNot Foundâï¼ç¶æç 为404
# æå»ºä¸ä¸ªç®åçå
¥å£
# app = Flask(__name__)
# tasks = [
# {
# 'id':1,
# 'name':"eycode",
# 'age':23,
# 'sex':"ç·"
# },
# {
# 'id':2,
# 'name':"imay",
# 'age':1,
# 'sex':'女'
# }
# ]
# @app.route("/api/v1.0/tasks", methods=['GET'])
# def _tasks():
# return jsonify({'tasks':tasks})
# if __name__ == "__main__":
# app.run(host='0.0.0.0', port=9000, debug=True)
# æå¼æµè§å¨è¾å
¥ï¼http://127.0.0.1:9000/api/v1.0/tasks
# è¿åç»æï¼
# {
# "tasks": [
# {
# "age": 23,
# "id": 1,
# "name": "eycode",
# "sex": "\u7537"
# },
# {
# "age": 1,
# "id": 2,
# "name": "imay",
# "sex": "\u5973"
# }
# ]
# }
# GETæ¹å¼éäº¤åæ°ï¼è¿åå¼
# from flask import abort, make_response
# app = Flask(__name__)
# tasks = [
# {
# 'id':1,
# 'name':"eycode",
# 'age':23,
# 'sex':"ç·"
# },
# {
# 'id':2,
# 'name':"imay",
# 'age':23,
# 'sex':"ç·"
# },
# {
# 'id':3,
# 'name':"benet",
# 'age':23,
# 'sex':"ç·"
# }
# ]
# @app.route('/api/v1.0/