Django笔记二十二之多数据库操作

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。Django笔记二十二之多数据库操作,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

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

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

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

1、定义方式

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

DATABASES = {
    'default': {
        'NAME': 'app_data',
        'ENGINE': 'django.db.backends.postgresql',
        'USER': 'postgres_user',
        'PASSWORD': 's3krit'
    },
    'users': {
        'NAME': 'user_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_user',
        'PASSWORD': 'superS3cret'
    },
    'customers': {
        'NAME': 'customer_data',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'mysql_cust',
        'PASSWORD': 'veryPriv@ate'
    }
}

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

2、同步命令

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

python3 manage.py migrate

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

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

python3 manage.py migrate --database=users

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

3、指定数据库操作

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

Blog.objects.all()

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

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

以及一些其他的操作:

blog = Blog.objects.using(db_alias).get(id=1)

Blog.objects.using(db_alias).filter(id=1).delete()

# 下面的是新建的保存操作:
obj.save(using=db_alias)

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/218074.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!