2011-05-02 87 views
11

我正在編寫一個聯合客戶端,目標是擁有一個設備客戶端和一個具有相同功能的網站。我將使用Django開發網站 - 這已經決定了;客戶端應該使用CLI和PyQt4 GUI以python編寫。我一直在寫clinet,它的數據庫非常龐大,因爲所有內容都被緩存起來,以便在脫機時讀取它。使用Django減去網絡服務器

今天讓我感到震驚的是,在我的應用程序中使用Django模型是有意義的,以減少客戶端和網站之間的重複努力。我的問題是,分離這件事是多麼容易,我的客戶端需要多少Django來使用Django的模型。 AFAIK我不需要運行服務器,但還需要什麼?我有一個爲我的客戶端生成與網站相同的html的想法,但是使用Qt小部件顯示它,而不是爲瀏覽器提供頁面。

有沒有人嘗試過這種事情?我已經開始了,但最好能得到潛在的死衚衕或會造成維修噩夢的警告......

回答

14

請閱讀standalone Django scripts,你就會走上勝利的道路。基本上你所做的只是引用Django settings.py(Django期望的),然後using models without web views or urls

如果您真正感興趣的是使用Django的ORM來管理模型和數據庫交互,那麼您可能需要考慮使用SQLAlchemy

+0

這看起來不錯 - 如果我p – theheadofabroom 2011-05-03 05:45:20

+0

如果你「p」?那裏你被截斷了嗎? :) – jathanism 2011-05-04 15:40:49

+0

哈哈 - 是的 - 我正在使用智能手機 - 我不知道它實際上已發佈。我會說,在我接受你的答案之前,我會有一個關於它的遊戲,以便有更多的需求解釋。乾杯! – theheadofabroom 2011-05-04 15:44:44

0

您仍然需要運行Django應用程序作爲網絡服務器,但是你可以限制它僅用於本地主機或其他東西。當然,你可以使用QtWebKit作爲客戶端。

+0

你確定我需要一個完整的應用程序來做到這一點?它似乎相當重量級,我希望能夠剝離到只有數據庫功能和模板引擎... – theheadofabroom 2011-05-02 14:39:01

+0

@BiggAl那麼,你必須以某種方式呈現你的模板。我認爲這樣做會更簡單。似乎要經歷很多麻煩,只是因爲你不喜歡Web服務器的想法。 – arussell84 2011-05-02 14:46:18

+0

目前看起來@jathanism提供的方法應該很棒。我想在移動設備上部署客戶端,因此我希望儘可能輕量化,但如果您之前嘗試過,請隨時讓我知道您是否遇到了陷阱。 – theheadofabroom 2011-05-02 15:21:45