当前位置: 首页 > 面试题库 >

Django:动态数据库文件

夏奕
2023-03-14
问题内容

在我的Django项目中,我对第三方应用程序具有依赖性,该第三方应用程序在具有已知模式的各个目录中生成SQLite缓存文件。

我想使用Django模型来访问这些数据库,但是显然我不能使用静态DATABASES设置。

如何在任意路径上动态打开SQLite数据库?

编辑

正如Byron Ruth所指出的,解决方案是将django.db.connections结合使用usingQuerySet中的函数。


问题答案:

django.db.connections是包裹一个简单的DATABASES在你的设置中定义。包装器类在这里: django.db.utils#L137-L227

from django.db import connections

# Add connection information dynamically..
connections.databases['new-alias'] = { ... }
# Ensure the remaining default connection information is defined.
# EDIT: this is actually performed for you in the wrapper class __getitem__
# method.. although it may be good to do it when being initially setup to
# prevent runtime errors later.
# connections.databases.ensure_defaults('new-alias')

# Use the new connection
conn = connections['new-alias']


 类似资料:
  • 问题内容: 我一直在评估django,并想知道以下情况是否可能。我已经看过常规的多个数据库文档,所以请不要指向我,因为据我所知,并没有提到该用例。如果我错了,我把它拿回来:) 我想要一个主数据库,我的大多数应用程序模型都将驻留在其中,但是该应用程序之一将需要动态创建数据库,这些数据库将是客户特定的数据库。 数据库路径(我计划使用sqlite)将存储在主数据库中,因此需要更改游标,但模型将保持不变。

  • 本文向大家介绍Python Django form 组件动态从数据库取choices数据实例,包括了Python Django form 组件动态从数据库取choices数据实例的使用技巧和注意事项,需要的朋友参考一下 app01/models.py: 往 City 表中添加数据 这时候需要重启服务才能在页面上显示这些内容 也就是说每次数据库中的内容更新,都需要重启服务才能显示出来 可以通过重写父

  • 本文向大家介绍Django 添加数据库路由文件,包括了Django 添加数据库路由文件的使用技巧和注意事项,需要的朋友参考一下 示例 要在Django中使用多个数据库,只需在中指定每个数据库settings.py: 使用dbrouters.py文件来指定对于每种数据库操作类,哪些模型应在哪些数据库上进行操作,例如,对于存储在中的远程数据remote_data,您可能需要以下内容: 最后,将您添加d

  • 问题内容: 我正在Laravel 5(.1)中创建一个应用程序,在该应用程序中需要连接到不同的数据库。唯一的问题是,它不知道必须连接到哪个数据库,因此无法在config中使用database.php。控制器负责使用动态给定的连接详细信息进行连接。 如何建立与数据库的新连接,包括使用DB类?(或者这可能) 提前致谢! 问题答案: 最简单的解决方案是在运行时设置数据库配置。Laravel可能希望从文件

  • 问题内容: 我正在尝试在Django中生成动态文件路径。我想制作一个像这样的文件系统: 我发现了一个相关的问题:具有动态路径的Django自定义图像上传字段 在这里,他们说我们可以更改upload_to路径,并指向https://docs.djangoproject.com/en/stable/topics/files/ doc。在文档中,有一个示例: 但是,这仍然不是动态的,我想给Car id赋

  • 问题内容: 我一直在努力学习AJAX,以便我可以简单地用数据库中的新文本动态更新网页,因为似乎所有的Ajax教程都是涉及将数据写入数据库的更复杂的示例。 我正在处理的页面只是一个PHP脚本,需要向其发布注册和ID号,并且该页面依次显示来自数据库的消息(经常更新)。我目前在页面顶部有一个“更新消息”按钮,该按钮发送命令以更新消息,但是需要刷新页面才能工作。 我只想使用ajax来动态刷新消息。这是我到