我花了几周时间学习Python / Django,并遇到了一个令人讨厌的问题。我已经在settings.py中建立了一些现有的数据库,一切看起来都很好,我什至已经使用connections []。cursor()
访问了数据库。但是,尽管执行了makemigrations和migration命令,但数据库(和数据)并未进入我要使用的模型。我能够使用py manage.py inspectdb --database-dbname并将该类信息手动复制到我的models.py中,但这也不起作用(单独输入py manage.py inspectdb不会拉出这些数据库,我只能通过该--database扩展进行查看)。所以我很沮丧,似乎我在做所有正确的步骤,但无法在Django中使用这些现有数据库。
欢迎我提出其他建议和步骤!
答案 0 :(得分:0)
(几乎)可以在Internet上找到的所有教程,示例和第三方应用程序,并且大多数Django文档都假定您对应用程序使用一个数据库。那是因为在一个应用程序中使用多个数据库是相当棘手且不寻常的。
但是使用多个数据库并非并非不可能,the documentation包含有关如何执行此操作以及需要进行哪些更改才能使其工作的说明。
IMO,这些是在一个项目中使用多个数据库的前提:
例如,如果您有一个包含Strava路线的现有数据库(通过某些外部机制定期更新),而您的应用程序是一个范围更广的应用程序,可以帮助用户了解附近的社区,他们可以在其中推荐位置和要做的事情,能够提供起点附近的路线列表可能就是您想要显示的东西。
现在您知道这一点,上面的文档中已介绍了解决方法:
Route.objects.filter(start_city=city)
将自动从您的Strava路线数据库中获取路线。也就是说,如果Strava数据库没有通过第三渠道定期更新,而其目的只是预填充您的默认数据库,则使用{将Strava数据库中的数据导出为json并将其导入到django数据库中{3}}或manage.py loaddata
,后者在json文件的结构上更灵活。