我試圖讓一個Django網站作爲我通過刮板收集的數據的用戶界面。刮板生成(並不斷更新)數據庫,我希望Django也可以與之交互。Django使用多個數據庫
我需要經常運行scraper程序,有沒有一種方法可以通過Django的管理員執行此操作?像管理後端,不需要直接與Django做?
我應該合併數據庫(刮板和Django)嗎?
有沒有適當的方法來做到這一點?
在此先感謝。
我試圖讓一個Django網站作爲我通過刮板收集的數據的用戶界面。刮板生成(並不斷更新)數據庫,我希望Django也可以與之交互。Django使用多個數據庫
我需要經常運行scraper程序,有沒有一種方法可以通過Django的管理員執行此操作?像管理後端,不需要直接與Django做?
我應該合併數據庫(刮板和Django)嗎?
有沒有適當的方法來做到這一點?
在此先感謝。
Django supports multiple databases。你可以保留你的scraping程序/數據庫,並直接通過Django訪問數據庫。像平常一樣設置模型 - 但在META
字段中設置爲managed = False
。這將阻止Django將遷移應用到數據庫。
如果您發現您確實想通過Django模型管理數據庫,您需要設置一個routing類,以確保您的應用只針對預期的數據庫。
不會有問題,因爲我的scraper程序會寫入數據庫,而Django會讀取它嗎? SQLite不支持線程(或者我相信至少它不好)。我需要改變成MySQL之類的東西嗎? –
我不能評論縮放,但除非您每秒執行數千次操作,否則不應該有任何問題。 –
您正在尋找Django中所謂的「非託管數據庫」 - 請參閱[文檔](https://docs.djangoproject.com/en/1.10/ref/models/options/#managed)瞭解如何開始。 – bbayles