2024年Python最新Django中一个项目使用多个数据库_django使用多个数据库

DatabaseAppsRouter: 路由规则的类名称,这个类是在database_router.py文件中定义

  1. 设置APP对应的数据库路由表

每个APP要连接哪个数据库,需要在做匹配设置,在settings.py文件中做如下配置:

以上的report, regs是项目中的 APP名,分别指定到 ora1, default的数据库。

为了使django自己的表也创建到你自己定义的数据库中,你可以指定 : admin, auth, contenttypes, sessions 到设定的数据库中,如果不指定则会自动创建到默认(default)的数据库中.

4. 创建数据库路由规则

在项目工程根路径下(与 settings.py 文件一级)创建database_router.py文件:

5.原生sql 的使用:

  1. Models创建样例

在各自的 APP 中创建数据表的models时,必须要指定表的 app_label 名字,如果不指定则会创建到default中配置的数据库名下,

如下:

在app01下创建models

在app02下创建models

  1. 生成数据表

在使用django的 migrate 创建生成表的时候,需要加上 –database 参数,如果不加则将 未 指定 app_label 的 APP的models中的表创建到default指定的数据库中,如:

将app01下models中的表创建到db01的数据库”db_01”中

./ manage.py  migrate–database=db01

将app02下models中的表创建到db02的数据库”db_02”中
文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
pics/618317507)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django1.8 使用多个数据库时,你需要使用相应的数据库连接来开启事务。具体步骤如下: 1. 首先,你需要在 `settings.py` 文件定义你的数据库连接信息,示例如下: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT': '3306', }, 'other': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'otherdatabase', } } ``` 在这个例子,我们定义了两个数据库连接,一个是 `default`,使用 MySQL 数据库;另一个是 `other`,使用 SQLite3 数据库。你可以根据自己的需要定义多个数据库连接。 2. 接下来,你需要在代码使用相应的数据库连接来开启事务。示例如下: ```python from django.db import connections, transaction def my_view(request): with connections['other'].transaction.atomic(): # 使用 'other' 数据库连接执行一些数据库操作 # 如果操作成功,会自动提交事务 # 如果操作失败,会自动回滚事务 with connections['default'].transaction.atomic(): # 使用 'default' 数据库连接执行一些数据库操作 # 如果操作成功,会自动提交事务 # 如果操作失败,会自动回滚事务 ``` 在这个例子,我们使用 `connections` 模块来获取相应的数据库连接,然后使用 `transaction.atomic()` 上下文管理器来开启事务。当我们在 `with` 语句执行数据库操作时,如果所有的操作都成功,那么事务会自动提交,否则事务会自动回滚。 需要注意的是,如果你使用的是 MySQL 数据库,还需要确保你的存储引擎是 InnoDB,否则事务功能可能无法正常工作。同时,不同的数据库连接之间是独立的,它们之间的事务操作互不影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值