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

資訊專欄INFORMATION COLUMN

Eve——python restful框架初試

Olivia / 2896人閱讀

摘要:使用之前安裝安裝并啟動它選擇或者用來測試,推薦第一個創建兩個文件和放在同一目錄下,第一次用的兩個坑,一個是沒啟動,一個就是這個了是設置文件,包含各種配置,必須存在一個名為的字典,定義了要提供的資源以字典形式表示在寫入如下內容就不解釋了在中寫

使用之前

安裝 eve
安裝 mongodb, 并啟動它
選擇 curl或者postman 用來測試,推薦postman

第一個demo

創建兩個文件main.py 和 settings.py放在同一目錄下,第一次用eve的兩個坑,一個是mongodb沒啟動,一個就是這個setting.py了

settting.py是設置文件,包含各種配置,必須存在一個名為DOMAIN的字典,DOMAIN定義了要提供的資源 以字典形式表示
在settings.py寫入如下內容

DOMAIN = {"people": {}}

main.py就不解釋了
在main.py中寫入如下內容

    from eve import Eve
    app = Eve()
    app.run()

Eve是基于Flask的,所以這樣的寫法對于用過Flask的人應該很熟悉
然后運行 main.py 用postman做get請求訪問 http://127.0.0.1:5000 可以得到類似下面的結果

    {
        "_links": {
            "child": [
                {
                    "title": "people",
                    "href": "people"
                }
            ]
        }
    }

Eve的api遵循HATEOAS原則,關于HATEOAS,可以看維基和這篇文章

之后用postman訪問 http://127.0.0.1:5000/people 這個資源,得到如下內容

    {
        "_items": [],
        "_links": {
            "self": {
                "title": "people",
                "href": "people"
            },
            "parent": {
                "title": "home",
                "href": "/"
            }
        },
        "_meta": {
            "max_results": 25,
            "total": 0,
            "page": 1
        }
    }

可以得到一個items列表,links和meta,items是該資源組中所有資源,links中包含self和parent,是指向自己和所在資源組的連接,meta是元信息,這里不討論
默認情況下。這些api都是只讀的,PUT,POST或者DELETE操作都會返回405

如果想要允許讀寫,在setting中寫入

# 啟用對資源組的增刪查
# 如果忽略這一行,默認只提供查
RESOURCE_METHODS = ["GET", "POST", "DELETE"]

# 啟用對單個資源的增刪改查
# 忽略情況下只提供查
ITEM_METHODS = ["GET", "PATCH", "PUT", "DELETE"]

這些設置是全局的,會影響到所有資源和資源組的設定,可以在各個資源點獨立設定允許的方法
可選:

    MONGO_HOST = "localhost"
    MONGO_PORT = 27017
    
    MONGO_USERNAME = ""
    MONGO_PASSWORD = ""
    
    MONGO_DBNAME = "apitest"

完善第一個demo

我們給第一個demo補上添加的功能

數據驗證:
創建一個字典schema,定義people的結構

    schema = {
        "firstname":{
                "type":"string",
                "minlength": 1,
                "maxlength":10,
            },
        "lastname":{
                "type": "string",
                "minlength": 1,
                "maxlength": 115,
                "required": True
            },
        "role":{
            "type":"list",
            "allowed":["author","contributor","copy"],
        },
        "location":{
            "type":"dict",
            "schema":{
                "address":{"type":"string"},
                "city":{"type":"string"}
            }
        },
        "born":{
            "type":"datetime",
        },
    }

這是基于Cerberus語法的模式定義的,具體語法可以看Cerberus官網
之后我們設置people屬性

    people= {
        "item_title": "person",
        # 默認情況下查找資源要同過/people/才能找到
        # 這里添加新的只讀路徑,可以通過lastname來獲得資源
        "additional_lookup": {
            "url":"regex("[w]+")",
            "field":"lastname",
        },
        # 控制緩存
        "cache_control":"max-age=10,must-revalidate",
        "cache_expires": 10,
        # 覆蓋全局的讀寫方法
        "resource_methods":["GET","POST"],
        # 設定結構
        "schema":schema,
    }

最后更新資源設置

    DOMAIN={"people":people}

用postman做post添加數據

[{"firstname": "barack", "lastname": "obama"}, {"firstname": "mitt", "lastname": "romney"}]

然后查看數據 http://127.0.0.1:5000/people

    {
        "_items": [
            {
                "_id": "5a30e8527111c41e885ff38a",
                "firstname": "barack",
                "_etag": "adab38db64dea06ebfe1c0e783a28bde88565c3f",
                "_links": {
                    "self": {
                        "href": "people/5a30e8527111c41e885ff38a",
                        "title": "person"
                    }
                },
                "_created": "Wed, 13 Dec 2017 08:44:02 GMT",
                "lastname": "obama",
                "_updated": "Wed, 13 Dec 2017 08:44:02 GMT"
            },
            {
                "_id": "5a30e8527111c41e885ff38b",
                "firstname": "mitt",
                "_etag": "39426631ce8050ff7ad6982e02281289cff4919b",
                "_links": {
                    "self": {
                        "href": "people/5a30e8527111c41e885ff38b",
                        "title": "person"
                    }
                },
                "_created": "Wed, 13 Dec 2017 08:44:02 GMT",
                "lastname": "romney",
                "_updated": "Wed, 13 Dec 2017 08:44:02 GMT"
            }
        ],
        "_meta": {
            "page": 1,
            "max_results": 25,
            "total": 2
        },
        "_links": {
            "parent": {
                "href": "/",
                "title": "home"
            },
            "self": {
                "href": "people",
                "title": "people"
            }
        }
    

通過新增加的路徑查看 http://127.0.0.1:5000/people/obama

    {
        "_created": "Wed, 13 Dec 2017 07:24:04 GMT",
        "lastname": "obama",
        "_links": {
            "parent": {
                "title": "home",
                "href": "/"
            },
            "collection": {
                "title": "people",
                "href": "people"
            },
            "self": {
                "title": "person",
                "href": "people/5a30d5947111c40f80df511e"
            }
        },
        "_updated": "Wed, 13 Dec 2017 07:24:04 GMT",
        "_etag": "94237cbea7a9a93d6db2dfb1c78a6ee84c4f8c89",
        "_id": "5a30d5947111c40f80df511e",
        "firstname": "barack"
    }

感覺還行

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

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

相關文章

  • Django前后端分離之REST framework初試

    摘要:之前剛學時硬生生使用了靜態資源和接口分離的方法,實際使用中肯定會非常不方便。于是發現了用于前后端分離,編寫后臺的框架。 之前剛學django時硬生生使用了靜態資源和接口分離的方法,實際使用中肯定會非常不方便。于是發現了用于前后端分離,編寫后臺API的REST framework框架。這里做初步嘗試官方文檔看起來非常入門本次實踐主要是根據官方文檔步驟進行初步實踐,其中加入一些自己學習時理...

    Scorpion 評論0 收藏0
  • node技術棧 - 收藏集 - 掘金

    摘要:異步最佳實踐避免回調地獄前端掘金本文涵蓋了處理異步操作的一些工具和技術和異步函數。 Nodejs 連接各種數據庫集合例子 - 后端 - 掘金Cassandra Module: cassandra-driver Installation ... 編寫 Node.js Rest API 的 10 個最佳實踐 - 前端 - 掘金全文共 6953 字,讀完需 8 分鐘,速讀需 2 分鐘。翻譯自...

    王偉廷 評論0 收藏0
  • Django前后端分離實踐

    摘要:更新嘗試了一下實現前后端分離,新的文章如下前后端分離之初試更新可另外用實現前后端分離,這篇文章可能局限性太大,只是個人的入門實踐剛剛學習前端快一年,后臺方面了解甚少,于是決定踩踩坑,學習一下。 2018.9.6更新:嘗試了一下REST framework實現前后端分離,新的文章如下Django前后端分離之REST framework初試 2018.8.27更新:可另外用 restful...

    Mike617 評論0 收藏0
  • python-eve 認證和授權

    摘要:要使用驗證,需要通過一些外部技術例如,向客戶發送包含用戶和秘密密鑰的電子郵件向客戶端提供用戶和密鑰。客戶端將使用提供的密鑰來簽署所有請求。 驗證類型 全局驗證 要實現安全認證,只需要在Eve實例化的時候傳入驗證類即可,這樣就創建了一個全局的驗證類 from eve.auth import BasicAuth class MybasicAuth(BasicAuth): ...

    edagarli 評論0 收藏0

發表評論

0條評論

Olivia

|高級講師

TA的文章

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