国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Flask編寫API的核心思想

阿羅 / 1977人閱讀

摘要:這篇文章,是我的自言自語為什么需要當客戶端與服務器端分離時需要通過傳遞資源什么是資源即數據庫中的數據如何表示資源使用的方式表示以鍵值的方式表示一個資源每一個鍵代表資源的一個屬性使用數組列表表示資源的集合例如如何使用的方式對資源進行操作涉及方

這篇文章,是我的自言自語

Q: 為什么需要API

A: 當客戶端與服務器端分離時, 需要通過API傳遞資源

Q: 什么是資源

A: 即數據庫中的數據

Q: 如何表示資源

A: 使用json的方式表示, 以鍵值的方式表示一個資源, 每一個鍵代表資源的一個屬性; 使用數組(列表)表示資源的集合, 例如

[
    {
        "id": 1,
        "username": "neo1218"
    },
    {
        "id": 2,
        "username": "zxc0328"
    }
]
Q: 如何使用HTTP的方式對資源進行操作

A: 涉及HTTP方法映射: 如下表

GET ------> 獲取(集合,特定資源)
POST -----> 創建(特定資源)
PUT ------> 更新(特定資源)
DELETE ---> 刪除(特定資源)
Q: 那么flask編寫API的核心是什么?

A:

1. 提供資源

flask需要把數據庫資源通過json的形式提供出去, 所以需要在數據庫Model中定義to_json方法, 以
json的形式表示數據庫數據, 以User類為例

class User(db.Model):
    ......
    def to_json(self):
        json_user = {
            "id": self.id,
            "username": self.username
        }
        return json_user
    ......
2. 接受json數據

flask需要接受客戶端發送的json數據從而用于創建資源,
所以需要在數據庫Model中定義from_json方法

class User(db.Model):
    ......
    @staticmethod
    def from_json(json_data):
        user = User(
            username = json_data.get("username"),
            password = json_data.get("password")
        )
        return user
    ......

并在API代碼中搭配[request.get_json()]()使用

/api/users.py

from flask import request

@api.route("/users/", methods=["POST"])
def create_user():
    user = User.from_json(request.get_json())
    db.session.add(user)
    db.session.commit()
HTTP方法與操作對應

還是以用戶資源為例:

@api.route("/users/", methods=["GET"])
def get_users():
    """獲取用戶資源集合"""
    pass

@api.route("/users//", methods=["GET"])
def get_id_users(id):
    """獲取特定id用戶資源"""
    pass

@api.route("/users/", methods=["GET", "POST"])
def create_user():
    """創建用戶資源"""
    pass

@api.route("/users//", methods=["GET", "PUT"])
def update_id_user(id):
    """更新特定id用戶資源"""
    pass

@api.route("/users//", methods=["GET", "DELETE"])
def delete_id_user(id):
    """刪除特定id用戶"""
    pass
Q: 所以說flask編寫API的核心思想就是以json的方式表示和接收資源并將相應操作映射到http方法上從而操縱資源, 是嗎?

A: 你這不是廢話嗎....

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37770.html

相關文章

  • Flask Web 測試驅動開發最佳實踐之 Flask 實例

    摘要:當功能越來越復雜的時候,你可能修改了一些東西,導致另外一個功能的不可用,而單元測試也能保證了原有功能被破壞后能被檢測出來。 showImg(https://segmentfault.com/img/remote/1460000017081749); 前言 前一篇講到了 TDD 測試驅動開發的相關概念和環境搭建,這篇就著手開始用TDD方式開發了。首先這篇需要編寫用戶相關的API接口,如...

    wuyangnju 評論0 收藏0
  • 《Python Web開發》作者Harry Percival:TDD就是微小而漸進改變

    摘要:目前就職于,他在各種演講研討會和開發者大會上積極推廣測試驅動開發。問很多敏捷教練都表示訓練新人做測試驅動開發是一件辛苦而進度緩慢的事,并且收益也不是很大。首先是開發的對話式風格。第一個問題就是測試套件的速度。 Harry J.W. Percival目前就職于PythonAnywhere,他在各種演講、研討會和開發者大會上積極推廣測試驅動開發(TDD)。他在利物浦大學獲得計算機科學碩士學...

    Guakin_Huang 評論0 收藏0
  • 《Python Web開發》作者Harry Percival:TDD就是微小而漸進改變

    摘要:目前就職于,他在各種演講研討會和開發者大會上積極推廣測試驅動開發。問很多敏捷教練都表示訓練新人做測試驅動開發是一件辛苦而進度緩慢的事,并且收益也不是很大。首先是開發的對話式風格。第一個問題就是測試套件的速度。 Harry J.W. Percival目前就職于PythonAnywhere,他在各種演講、研討會和開發者大會上積極推廣測試驅動開發(TDD)。他在利物浦大學獲得計算機科學碩士學...

    k00baa 評論0 收藏0
  • 使用swagger 生成 Flask RESTful API

    摘要:指定篩選條件選擇合適的狀態碼應答中,需要帶一個很重要的字段。返回結果針對不同操作,服務器向用戶返回的結果應該符合以下規范。如果狀態碼是,就應該向用戶返回出錯信息。 什么是 RESTful 什么是REST REST(英文:Representational State Transfer,又稱具象狀態傳輸)是Roy Thomas Fielding博士于2000年在他的博士論文 中提出來的一種...

    printempw 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<