美文网首页Python小哥哥Pythonpython
Django中一个项目使用多个数据库

Django中一个项目使用多个数据库

作者: 我爱学python | 来源:发表于2019-07-04 16:38 被阅读13次

在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。

1. 修改项目的 settings 配置 

在 settings.py 中配置需要连接的多个数据库连接串

2. 设置数据库的路由规则方法 

在settings.py中配置DATABASE_ROUTERS

1DATABASE_ROUTERS = ['Prject.database_router.DatabaseAppsRouter']

Project: 建立的django项目名称(project_name)

database_router: 定义路由规则database_router.py文件名称, 这个文件名可以自己定义

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

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

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

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

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

4. 创建数据库路由规则

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

5.原生sql 的使用:

6. Models创建样例

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

如下:

在app01下创建models

在app02下创建models

7. 生成数据表

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

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

./ manage.py  migrate--database=db01                               

将app02下models中的表创建到db02的数据库”db_02”中

./ manage.py  migrate--database=db02

将app03下models中的表创建到default的数据库”sqlite3”中

./ manage.py  migrate

以上创建完成后,其它所有的创建、查询、删除等操作就和普通一样操作就可以了,无需再使用类似

models.User.objects.using(dbname).all()

这样的方式来操作

相关文章

  • Django中一个项目使用多个数据库

    在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要...

  • python学习第一篇

    项目与应用的关系 使用Django创建一个项目,同时也需要创建一个项目的应用。多个应用在一个项目内,同时多个项目可...

  • djongo:Django和MongoDB连接器

    在Django项目中使用MongoDB作为后端数据库,且不改变Django的ORM框架。实现Django用户管理程...

  • djongo:Django和MongoDB连接器

    在Django项目中使用MongoDB作为后端数据库,且不改变Django的ORM框架。实现Django用户管理程...

  • Django 随笔:illegal instruction 4

    问题来源 django 1.11 项目使用 postgresql 数据库,使用以下命令安装 psycopg2 : ...

  • Django配置mysql数据库

    一、配置数据库 Django默认数据库为sqlite 若该项目要使用mysql数据库,需要更改配置 1、项目下se...

  • 模板系统

    模板 Django项目可以配置一个或多个模板引擎(或者如果不使用模板,甚至为零)。Django后端内置一个自己的模...

  • django 的使用

    使用django创建项目 模型-数据库 迁移 运行项目 shell 操作数据库模型 后台管理添加后台管理账号: a...

  • 在django下使用mysql(1)

    1、使用终端命令启动mysql 2、在MySql中创建Django项目的数据库 3、在MySql中为Django项...

  • django-链接数据库/添加信息到数据库

    Django项目中使用数据库 安装mysql数据库,启动数据库服务,创建数据库 setting.py 迁移数据 将...

网友评论

    本文标题:Django中一个项目使用多个数据库

    本文链接:https://www.haomeiwen.com/subject/adyrhctx.html