Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多数据库帮助?(django)_Python_Database_Django - Fatal编程技术网

Python 多数据库帮助?(django)

Python 多数据库帮助?(django),python,database,django,Python,Database,Django,因此,我在上阅读了多个数据库文档,这非常有帮助。我了解了如何在setting.py中显示第二个数据库,以及如何通过命令提示符同步它。但我搞不懂的是如何指定如何将某个模型同步到第二个数据库或保存在第二个数据库中。特别是如果我没有明确地说出来的话 像用户一样 如果我使用django的users类创建用户,那么如何将其保存到第二个数据库?请再次仔细阅读您提供的文档。文档的这一部分准确地回答了您的问题。 用户数据库的路由取决于您的实际使用情况和分区策略,没有一句话可以回答。文档中有供用户使用的示例,您可

因此,我在上阅读了多个数据库文档,这非常有帮助。我了解了如何在setting.py中显示第二个数据库,以及如何通过命令提示符同步它。但我搞不懂的是如何指定如何将某个模型同步到第二个数据库或保存在第二个数据库中。特别是如果我没有明确地说出来的话

像用户一样


如果我使用django的users类创建用户,那么如何将其保存到第二个数据库?

请再次仔细阅读您提供的文档。文档的这一部分准确地回答了您的问题。
用户数据库的路由取决于您的实际使用情况和分区策略,没有一句话可以回答。文档中有供用户使用的示例,您可以在本地机器上阅读和签入。

(直接从Django文档中获得的代码:

路由器处理应该在哪个数据库中获取或设置数据

如果您想为应用程序(名为“myapp”)安装路由器

通过将下一行添加到settings.py,所有“myapp”应用程序数据都将在其自己的数据库(名为“其他”)中创建/保存/处理。其余所有应用程序都使用默认数据库

DATABASE_ROUTERS = ['path.to.MyAppRouter']

路由器可以保存在任何你想保存的地方。只要修复设置的路径。数据库路由器。

我想我只有一个问题。我应该把数据库路由类放在哪里?在models.py?@user1316042中,它是由
数据库路由器中定义的路径导入的。
,路径可以在任何地方找到。例如,你可以将其放入settings.py中,并将
数据库\u路由器设置为类似
['settings.MyRouter']
Hmmph。我遇到了问题,因为我的模型中没有定义用户。因此,我不能给它一个详细的名称,我用它来路由模型。现在我已经将所有模型的详细名称设置为“cash”,但是我为什么要尝试使用路由器,因为我不能/没有定义用户,我必须使用
if model.\u meta.verbose\u name!=“cash”:
当我允许\u syncdb时,这会让我遇到一些问题。或者如果我只是指定每次保存/读取内容的位置,我是否需要使用路由?它只是将我的所有模型同步到第二个数据库,并且我只需指定我要使用的两个数据库中的哪一个?很抱歉,遇到了所有的麻烦。我没有意识到你可以只使用路由它们都存在于两个数据库中。希望它们不会自动共享信息。不确定为什么它们从一开始就被设计成这样,但是的。我想我明白了。
DATABASE_ROUTERS = ['path.to.MyAppRouter']