2016-09-24 84 views
0

我试图让一个Django网站作为我通过刮板收集的数据的用户界面。刮板生成(并不断更新)数据库,我希望Django也可以与之交互。Django使用多个数据库

我需要经常运行scraper程序,有没有一种方法可以通过Django的管理员执行此操作?像管理后端,不需要直接与Django做?

我应该合并数据库(刮板和Django)吗?

有没有适当的方法来做到这一点?

在此先感谢。

+0

您正在寻找Django中所谓的“非托管数据库” - 请参阅[文档](https://docs.djangoproject.com/en/1.10/ref/models/options/#managed)了解如何开始。 – bbayles

回答

0

Django supports multiple databases。你可以保留你的scraping程序/数据库,并直接通过Django访问数据库。像平常一样设置模型 - 但在META字段中设置为managed = False。这将阻止Django将迁移应用到数据库。

如果您发现您确实想通过Django模型管理数据库,您需要设置一个routing类,以确保您的应用只针对预期的数据库。

+0

不会有问题,因为我的scraper程序会写入数据库,而Django会读取它吗? SQLite不支持线程(或者我相信至少它不好)。我需要改变成MySQL之类的东西吗? –

+0

我不能评论缩放,但除非您每秒执行数千次操作,否则不应该有任何问题。 –