Django multidb:写入多个数据库

2024-06-23

使用 Django multidb,编写一个router http://docs.djangoproject.com/en/dev/topics/db/multi-db/#database-routers运行主/从基础设施。但是是否可以编写一个路由器writes到多个数据库?我的用例是项目的集合,所有项目都在同一域上运行。为了避免用户在每个站点上注册/登录,我想同步contrib.auth and contrib.sessions表。 Django multidb 是否可以实现这一点,或者我应该研究数据库系统(在我的例子中为 MySQL)的复制功能?


我认为您会更好地实施 SSO 或 OAuth 服务

但是如果您想在两个数据库之间同步表用户并且使用自己的 UserModel 您可以执行以下操作

class MyUser(models.Model):
    name = models.CharField(max_length=100)
    user = models.ForeignKey(User, unique=True)


    def save(self, ...): # ALL the signature
        super(MyUser, self).save(using='database_1')
        super(MyUser, self).save(using='database_2')

您还可以使用这样的装饰器,这样您也可以使用它来同步其他表:

def save_multi_db(model_class):

    def save_wrapper(save_func): 
        def new_save(self, *args, **kws):
            super(model_class, self).save(using='database_1')
            super(model_class, self).save(using='database_1')
        return new_save

    func = getattr(model_class, 'save')
    setattr(model_class, 'save', save_wrapper(func)) 

    return save_wrapper

# and use it like this:

@save_multi_db
class MyUser(models.Model):
      ....

希望这会有所帮助:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django multidb:写入多个数据库 的相关文章

  • Python Flask 删除请求

    我正在开发一个 Python 应用程序并使用 Flask 这是我的 DELETE 函数 app route DeleteMessage methods DELETE def DeleteMessage messages Message qu
  • 使用不带引号的块样式的 Python YAML 转储

    如何使用 PyYAML 加载和转储 YAML 以便它尽可能地使用原始样式 我有 Python 来加载和转储 YAML 数据 例如 import sys import yaml def represent dictorder self dat
  • 如何将 typeshed 与 mypy 一起使用?

    我克隆了typeshed https github com python typeshed但我不知道如何告诉 mypy 使用它包含的类型提示 我在 mypy help 中没有看到任何选项 mypy 存储库确实包含对 typeshed 存储库
  • 搜索/替换 xml 内容

    我已经成功地使用 xml etree ElementTree 解析 xml 搜索内容 然后将其写入不同的 xml 然而 我只是处理单个标签内的文本 import os sys glob xml etree ElementTree as ET
  • 使用 setuptools (pip) 时如何打印警告和错误

    我正在使用 setuptools 来打包代码 以便可以使用以下命令轻松安装它 cd project name pip install 在设置过程中 我想警告用户有关预先存在的配置文件的信息 并在系统上打印一些安装后说明 例如 etc pro
  • 在 PyCharm 中启用终端模拟

    很多人告诉过我和PyCharm 2 7 的 PyCharm 发行说明 https www jetbrains com pycharm whatsnew whatsnew 27 html吹捧那个PyCharm包括完整的终端仿真 我认为这是关于
  • 我如何知道Python的unicode函数识别的所有支持的编码

    Python 有一个unicode将字节流转换为 unicode 字符串的内置函数 我只是希望我能查询所有可用的encoding在我的系统上 但如何 这个问题的原因是 有人使用 MAC OS X 向我发送了一封内容编码为 iso 2022
  • Plotly:如何在堆叠条形图顶部显示值的总和以及各个条形值?

    我正在尝试在 Python 中的 Plotly Express 中添加每个堆叠条形顶部的总计以及各个条形值 import plotly express as px df px data medals long fig px bar df x
  • [Python]比较两个 zip 文件的函数,一个位于 FTP 目录中,另一个位于我的本地计算机上

    我在创建比较两个 zip 文件的函数时遇到问题 如果它们相同 而不仅仅是名称相同 这是我的代码示例 def validate zip files self host 192 168 0 1 port 2323 username 123 pa
  • 如何在Python中将N毫秒添加到日期时间

    我正在设置一个日期时间变量 fulldate datetime datetime strptime date time Y m d H M S f 其中日期和时间是适合日期时间性质的字符串 如何将此日期时间增加 N 毫秒 Use timed
  • 识别文本中的多个类别和相关情感

    如果您有一个文本语料库 如何识别所有类别 来自预定义类别列表 以及与之相关的情绪 正面 负面写作 我将在 Python 中执行此操作 但现阶段我不一定要寻找特定于语言的解决方案 让我们用一个例子来看看这个问题 试图澄清我的问题 如果我有一整
  • 过滤给定范围内的坐标

    我有数百个带有地理位置的 out 文件 我将把它们批量导入到 SQLite 数据库中 但是 为了节省时间 我只会导入地理坐标在某些间隔内的线 文件是这样的 value value longitude latitude value value
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • matplotlib 后端 - 我关心吗?

    gt gt gt import matplotlib gt gt gt print matplotlib rcsetup all backends u GTK u GTKAgg u GTKCairo u MacOSX u Qt4Agg u
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • ValueError:序列太大;不能大于 32

    我写了这段代码 from Crypto Cipher import AES import numpy as np import cv2 base64 BLOCK SIZE 16 PADDING pad lambda s s BLOCK SI
  • 为什么变量 1 += 变量 2 比变量 1 = 变量 1 + 变量 2 快得多?

    我继承了一些 Python 代码 用于创建巨大的表 最多 19 列宽 5000 行 花了九秒用于在屏幕上绘制表格 我注意到每一行都是使用以下代码添加的 sTable sTable n GetRow where sTable是一个字符串 我将
  • VSCode IntelliSense 认为 Python 'function()' 类存在

    VSCode IntelliSense 正在完成一个名为的 Python 类function 这似乎不存在 例如 这似乎是有效的代码 def foo value return function value foo 0 But functio
  • 如何限制单元测试的最大运行时间?

    我目前正在运行一些单元测试 这些测试可能需要很长时间才能失败或无限期地运行 在成功的测试运行中 它们总是会在一定的时间内完成 是否可以创建一个 pytest 单元测试 如果在一定时间内未完成 该测试就会失败 您可以安装 pytest tim

随机推荐

  • 如何将 .wav 格式的声音相互附加

    我正在自学C 通过阅读一些书籍和观看一些教程 因此 我决定同时做一个小项目 以获得更多经验并巩固我的知识 我正在尝试用格鲁吉亚语 我的语言 创建一个文本到语音程序 我在java中完成了相同的程序 但想在C 中传输它 但我无法理解如何将不同的
  • .net mvc 更新了 jquery 现在出现严重错误

    我今天通过 NuGet 更新了 jquery 现在收到以下错误 JavaScript critical error at line 1 column 11 http localhost 53779 Scripts jquery 1 9 0
  • 整数溢出 - 将 C# 转换为 VB.Net 代码

    从 C 到 VB Net 的代码转换出现问题 var x 5783615 var y 56811584 var t x y x y和t是整数 在 C 中 t 将为 15536 49728 在 VB Net 中 我会得到一个整数溢出异常 知道
  • PHP 和 MySQL 更新查询仅更新表中的最后一条记录

    我有一个 HTML 表单 用于通过后脚本更新 MySQL 表 但是 我遇到一个问题 即每行上的更新按钮仅适用于表中的最后一行
  • 如何在 TFS 2015 上删除/取消注册构建代理

    我已经使用专用服务器设置了 TFS 2015 来存储构建代理 但是 当我删除 TFS 2015 应用程序服务器上的构建代理时 它仍然显示在构建服务器上的 Windows 服务 中 现在构建服务器显示错误 因为服务存在但未运行 如何从 TFS
  • 使用正则表达式删除重复字符?

    假设我想使用正则表达式删除字符串中的所有重复字符 特定字符 这很简单 import re re sub a a aaaa gives a 如果我想用相应的字符替换所有重复的字符 即 a z 怎么办 我该怎么做呢 import re re s
  • JavaScriptSerializer - 自定义属性名称

    我正在使用 JavaScriptSerializer 来反序列化 json 数据 一切都运行良好 但我的问题是 json 数据中的一个属性名为 base 因此我无法在 C 代码中创建这样的属性 我发现我可以手动将值映射到构造函数中的属性 但
  • 从父类对象调用子类方法

    我有以下课程 class Person private String name void getName class Student extends Person String class void getClass class Teach
  • 字符串到日期时间转换 Bigquery

    我有一个源表 其中的日期以字符串格式存储 如下所示 1984 10 28 00 00 00 1988 11 22 00 00 00 1990 01 08 00 00 00 1983 06 22 00 00 00 然后创建一个表test1如下
  • 实体框架无法删除数据库,数据库正在使用中

    我 和许多其他人一样 遇到了这样的问题 我无法让我的 NUnit 测试删除数据库中的数据库 SetUp 我的测试装置 我想要实现什么 我想编写集成测试来测试我的代码并验证预期结果是否存储在数据库中 断言 CRUD 方法 那 and我希望能够
  • Android 删除查询

    我试图删除一个表中在另一表中没有相应 ID 的所有行 由于显然 SQLite 不支持删除中的连接 因此我尝试按照以下方式做一些事情 DELETE FROM my table WHERE my id NOT IN SELECT id FROM
  • 0xffff0 和 BIOS

    当电脑第一次启动时 它开始在物理地址 0xffff0 处执行 该地址包含一条到 BIOS 的 jmp 指令 现在对于我的问题 我总是假设物理地址映射到 RAM 如果 RAM 最初包含垃圾值 那么究竟是什么将 jmp 指令放入 0xffff0
  • C++中的分号是什么?

    粗略地说 C 有 运算符 new 标识符 类名 变量名 函数名 常量文字 10 2 5 100 一些关键词 int class typename mutable 括号 lt gt 预处理器 但分号是什么 分号是一个标点符号 参见 2 13
  • 是否可以获取具有偏移限制的总行数

    嘿盖兹这有可能获得带有偏移限制的总行数吗 Scenario SELECT FROM users limit 0 5 此查询包含 300 条记录 但问题是如果我使用偏移量调用此查询 结果将仅显示 5 条记录 并且我不想两次编写查询 一个用于分
  • 具有不平衡类的 sklearn 逻辑回归

    我正在用 python 中的 sklearn 逻辑回归解决分类问题 我的问题是一个普遍 通用的问题 我有一个包含两个类 结果 正 负或 1 0 的数据集 但该集高度不平衡 大约 5 为阳性 大约 95 为阴性 我知道有很多方法可以处理这样的
  • IPAddress.Parse() 使用 IPv4 上的端口

    我正在尝试使用 IPAddress Parse 解析包含 IP 地址和端口的字符串 这适用于 IPv6 地址 但不适用于 IPv4 地址 有人可以解释为什么会发生这种情况吗 我正在使用的代码是 IPAddress Parse 1 5 Val
  • 外部协议处理程序和现代浏览器

    我注意到 GitHub 几个月前推出了一个新的 在 Mac 中克隆 按钮 单击该按钮后会执行外部协议请求 github mac openRepo REPOURL 假设我想为我的应用程序实现类似的功能 我想知道 如果用户浏览器不支持外部协议
  • 将 html 文件另存为 PDF

    我正在使用 PHP 输出缓冲区创建动态 数据查看 页面的 HTML 文件 然后将此输出作为 HTML 文件保存到服务器 并希望创建此 HTML 文件的 PDF 文件 存储在服务器 但我看过的每个解决方案都要求您将 HTML 代码放入变量中
  • iPhone:仅当从其他视图返回时 viewWillAppear

    viewWillAppear在进入该视图和从其他视图返回该视图时都会被调用 我只想在从其他视图返回时选择 突出显示 并淡出单元格 有委托方法来执行此操作吗 我正在使用 UINavigationViewController 如果您使用的是 i
  • Django multidb:写入多个数据库

    使用 Django multidb 编写一个router http docs djangoproject com en dev topics db multi db database routers运行主 从基础设施 但是是否可以编写一个路