天天看點

Flask學習筆記(二十) --Flask-Restful插件使用/API接口的編寫

引言

http或者https協定是一種被廣泛運用的網絡傳輸協定,是一種應用層協定。通過該協定傳輸資料,一般是POST方法,有兩種常用的方式

  • 使用浏覽器原生的form表單,應該是最常用的方式了,一般是使用者向伺服器送出資料(在此之前伺服器要向浏覽器渲染網頁)
  • 如果是單純的提供資料,應該使用API接口。也是背景和前後的一套規範。資料的格式建議采用json,簡單規範。

參考:四種常見的POST 送出資料方式

flask架構開發,可以使用Flask-Restful插件編寫API接口,為前台/使用者提供資料服務。

安裝依賴:

pip install flask-restful      

Restful API規範

參考:http://www.ruanyifeng.com/blog/2014/05/restful_api.html

測試代碼

from flask import Flask
from flask_restful import Api,Resource,reqparse,fields


#目的:使用flask_restful子產品,進行API接口的編寫


app = Flask(__name__)

# 用Api來綁定app
api = Api(app)

#直接傳回json資料
#使用者使用get請求擷取API接口
class IndexView(Resource):
    def get(self):
        return {"username":"hinzer"}

api.add_resource(IndexView,'/',endpoint='index')


#通過指定字段傳回資料
#使用ORM模型或者自定義的模型的時候,他會自動的擷取模型中的相應的字段,生成json資料,然後再傳回給用戶端。
# class ProfileView(Resource):
#     resource_fields = {
#         'username': fields.String,
#         'age': fields.Integer(default=18),              #預設值 18歲~~
#         # 'school': fields.String,
#         'education': fields.String(attribute='school')  #重命名屬性,對外提供 education這個屬性名,程式上實際是school屬性
#     }
#
#     @marshal_with(resource_fields)
#     def get(self,user_id):
#         user = User.query.get(user_id)      #查詢模型 User
#         return user




if __name__ == '__main__':
    app.run()
      

浏覽器測試

繼續閱讀