2017-09-11 26 views
-1

我有一個帶有命令行界面的小程序,它使用了許多python類和徹底的實現。我想要取消命令行界面並將應用程序包裝在Django應用程序中,但我只是在學習Django,而且我不熟悉這些約定。將現有的python類轉換爲Django模型

我有一些類,內存中的存儲結構,getters/setters等,我想將它們轉換成Django模型,以便我可以將它們持久化到數據庫並在django應用程序中與它們進行交互。有沒有這樣做的一般方法?

我應該在我現有的類中繼承django.db.models.Model類並將它們設置爲直接交互?還是有更好,更一般/傳統的方式來做到這一點?

我希望能夠在其他應用程序中使用所有這些代碼,而不是必須使用Django的代碼,所以我不想修改我的現有類,以使它們只能與Django一起使用。我想要分別創建模型,然後是一箇中間人類來管理實際的內存類與django模型類的交互,但是看起來像更多的地方,當我擴展/修改碼。

感謝提前任何幫助......

回答

1

一個最大的Django的優勢之一是它的ORM,如果你想導入我推薦你使用它,是你可能需要重寫與交互的部分數據庫,但如果你已經在模型文件夾〜類中分離了這個功能,修改將不會真的很難

雖然在你的情況下,我會建議檢出Tornado/Aiohttp因爲你看起來像只是試圖創建一個用於你的功能的界面

2

就我個人而言,我會修改你現有的類擴展models.Model並且維護這些類的單獨版本以供在Django之外使用。

這將使您的班級保持在各自的環境中。

你也可以創建一個新的類來擴展models.Model和你的python模型,通過多重繼承。但是,這將導致相同數據的重複字段。

如果您願意,可將示例模型作爲新問題發佈,並在此處爲其添加鏈接標記,我可以幫助您將其轉換。