经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
Django笔记二十二之多数据库操作
来源:cnblogs  作者:XHunter  时间:2023/4/12 11:16:06  对本文有异议

本文首发于公众号:Hunter后端
原文链接:Django笔记二十二之多数据库操作

这一篇笔记介绍一下多数据库操作。

在第十篇笔记的时候,简单介绍过 using() 的使用方法,多个数据库就是通过 using(db_alias) 的方式来来指定选中的数据库,这里介绍一下同步库表结构时候的操作。

  1. 定义方式
  2. 同步命令
  3. 指定数据库操作

1、定义方式

在 settings.py 的 DATABASES 变量中可以定义多个数据库,如果是多个数据库,示例如下:

  1. DATABASES = {
  2. 'default': {
  3. 'NAME': 'app_data',
  4. 'ENGINE': 'django.db.backends.postgresql',
  5. 'USER': 'postgres_user',
  6. 'PASSWORD': 's3krit'
  7. },
  8. 'users': {
  9. 'NAME': 'user_data',
  10. 'ENGINE': 'django.db.backends.mysql',
  11. 'USER': 'mysql_user',
  12. 'PASSWORD': 'superS3cret'
  13. },
  14. 'customers': {
  15. 'NAME': 'customer_data',
  16. 'ENGINE': 'django.db.backends.mysql',
  17. 'USER': 'mysql_cust',
  18. 'PASSWORD': 'veryPriv@ate'
  19. }
  20. }

通过 DATABASES 的 key 定义不同数据库的名称,使用的时候就可以根据这几个 key 来连接访问。

2、同步命令

之前介绍过 migrate 的相关命令,比如:

  1. python3 manage.py migrate

之前的这种操作是因为系统都是使用的默认的数据库,也就是 default,如果是需要对其他数据库进行相关 migrate 的操作,需要通过 --database=db_alias 的命令来指定数据库。

比如需要对 users 数据库进行表结构的操作,命令如下:

  1. python3 manage.py migrate --database=users

当然,如果我们使用的还是 default 数据库,那么加不加 --database 参数都可以。

3、指定数据库操作

对于数据库的操作,比如说获取 Blog 这个 model 的所有数据,如果是 default 数据库,那么命令则是:

  1. Blog.objects.all()

而如果这个 model 是指定的其他数据库,比如 users,那么使用前需要通过 using(db_alias) 来指定:

  1. db_alias = "users"
  2. Blog.objects.using(db_alias).all()

以及一些其他的操作:

  1. blog = Blog.objects.using(db_alias).get(id=1)
  2. Blog.objects.using(db_alias).filter(id=1).delete()
  3. # 下面的是新建的保存操作:
  4. obj.save(using=db_alias)

以上就是本篇笔记的全部内容,下一篇将介绍如何使用 model 的条件表达式的搜索,更新等操作。

如果想获取更多后端相关文章,可扫码关注阅读:
image

原文链接:https://www.cnblogs.com/hunterxiong/p/17307862.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号