在Django/python中驗證JSON數據的最佳方法是什麼?Django/python驗證JSON
最好是創建一堆類,如Django FormMixin類,可以驗證傳入的數據/參數?
什麼是最好的幹這種方式?是否有我可以利用的現有應用程序?
我想採用JSON數據並作爲結果對我的模型實例執行一些操作/更新。我正在使用的數據不是用戶生成的,也就是說它們是id和標誌(沒有文本),所以我不想使用Forms。
在Django/python中驗證JSON數據的最佳方法是什麼?Django/python驗證JSON
最好是創建一堆類,如Django FormMixin類,可以驗證傳入的數據/參數?
什麼是最好的幹這種方式?是否有我可以利用的現有應用程序?
我想採用JSON數據並作爲結果對我的模型實例執行一些操作/更新。我正在使用的數據不是用戶生成的,也就是說它們是id和標誌(沒有文本),所以我不想使用Forms。
我只實例化來自JSON數據的模型對象,並調用full_clean()對模型來驗證:https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.full_clean
m = myModel(**jsondata)
m.full_clean()
validictory驗證JSON來的JSON架構。有用。當然,現在你需要在json中定義你的模式,這可能對你想要做的事情有點用處,但它確實有它的位置。
相當不錯的圖書館。值得一試 – Eldamir
我會建議一個名爲DictShield一個Python庫這個https://github.com/j2labs/dictshield
DictShield是一個數據庫無關的模型系統。它提供了一種輕鬆建模,驗證和重塑數據的方法。
甚至還有做JSON驗證樣本:
驗證用戶輸入
比方說,我們從用戶這個JSON字符串。
{ 「生物」: 「巨蟒,Erlang和吉他!」, 「祕密」: 「e8b5d682452313a6142c10b045a9a135」, 「名」: 「J2D2」}
我們可以寫一些服務器代碼,看起來像這樣:
json_string = request.get_arg('data')
user_input = json.loads(json_string)
user.validate(**user_input)
Dictshield看起來非常好,但是從它的描述來看,它是一個模型化數據庫(並且有驗證),而不僅僅是驗證它。 – PuercoPop
不太確定你的意思 - 你想驗證一個字符串,並確保它是有效的JSON?你想獲取JSON對象並確保數據類型正確(例如data.intVal是一個整數值)?或者是其他東西? –
我想確保它們是有效的數據類型,但也要確保它包含正確的鍵和值對。但我想要一個通用的DRY方法,因爲需要在那裏的鍵值對將根據我正在處理的模型而有所不同。類似於Django Forms的方式。 –