引言
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()