2012-10-03 39 views
3

我將構建一個將使用基於XML的API的Web應用程序,並且我想使用Flask來創建它。使用Flask消耗外部XML API(包括模型等)

假設我將使用SQLAlchemy作爲數據庫,以及類似FlaskWTF的窗體,我該如何開始以這種方式使用Flask?我不確定從哪裏開始。我聽說requests Python庫是一個很好的方法,但我不知道如何將它與db.model或Flask的其他功能集成,因爲我將構建一個類似MVC的應用程序。

我已經讀過這篇文章,但它並沒有真正幫助我,因爲我不會使用本地數據庫。 https://github.com/mitsuhiko/flask/wiki/Large-app-how-to

+0

基於XML的API是XML-RPC API還是SOAP API? –

+1

我相信這是一個SOAP API。它來自Microsoft .NET應用程序。 – element119

回答

2

requests庫簡化了製作HTTP請求的工作,但它沒有做任何事情來幫助您使用響應XML。您可能更喜歡使用Suds,PySimpleSOAPFlask-Enterprise來使用SOAP數據。同樣,Flask本身對幫助您專門消費SOAP服務的作用不大,但Flask補充了其他用於使用SOAP的Python庫。

首先編寫和測試與SOAP數據源交互的函數。這些函數應該作爲您的應用程序的數據模型,將Python對象轉換爲SOAP請求/從SOAP請求轉換。我認爲你不需要本地緩存或應用程序特定的本地數據存儲,因爲你提到你不會使用本地數據庫(儘管如果需要可以很容易地添加它們)。

就像SQLAlchemy將SQL的細節與應用程序的其餘部分隔離開來一樣,您的SOAP支持的數據模型應該將應用程序的其餘部分與SOAP特定相隔離。在這些數據模型上構建應用程序,依靠本地Python對象,就像在大多數通用Flask示例中找到的那樣。