Django app配置多个数据库代码实例
这篇文章主要介绍了Django app配置多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
每个app使用不同的数据库
1. 配置数据库连接
# settings.py # DATABASES中必须要有default字段 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db', 'USER': '', 'PASSWORD': '', 'HOST': "localhost", 'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'} }, 'db1': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db1', 'USER': '', 'PASSWORD': '', 'HOST': "localhost", 'OPTIONS': {'init_command': 'SET default_storage_engine=INNODB;'} } }
2. 配置数据库路由
# settings.py DATABASES_APPS_MAPPING = { 'app1': 'default', 'app2': 'db1', } DATABASE_ROUTERS = ['utils.database_router.DatabaseAppsRouter']
3. 数据库路由文件:
from django.conf import settings class DatabaseAppsRouter(object): def db_for_read(self, model, **hints): app_label = model._meta.app_label if app_label in settings.DATABASES_APPS_MAPPING: return settings.DATABASES_APPS_MAPPING[app_label] return None def db_for_write(self, model, **hints): app_label = model._meta.app_label if app_label in settings.DATABASES_APPS_MAPPING: return settings.DATABASES_APPS_MAPPING[app_label] return None
至此,使用app1的model会访问default数据库,使用app2的model会访问db1数据库
同一个app下使用不同数据库
只需要在model class中修改app_label的值即可,app_label默认为此model所在app的名称
class Book2(models.Model): author = models.CharField(max_length=1024, blank=True, null=True) title = models.CharField(max_length=1024) class Meta: app_label = 'db1'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Django 连接sql server数据库的方法
*在此注明,本人使用的是python3.5和Django2.0.4 sql server是微软出的一款闭源的可运行于windows和linux平台上的 关系型数据库 .由于其闭源的特性,所以较少有公司使用,但是比较神奇的是,我所在的公司和我几个朋友所在的公司业务都是以爬虫为主,都是以sql server作为主要的数据库在使用. 一.打包 如果你是使用Django的老手应该知道Django默认不支持sql server:如果你刚开始接触Django,那么你应该知道Django默认支持四种数据库:p
-
Django如何自定义model创建数据库索引的顺序
首先这是一个先有鸡还是先有蛋的问题,大部分时候数据都来自excel的整理,当数据越来越多,需要分析的点也越来越多的时候,通过excel来管理显然有些吃力了. 这时候就需要将excel导入到数据库中,然而model创建的索引并非是我们编写时候的顺序,特别是当存在 models.ForeignKey 时,我们必须要先创建 ForeignKey的class,最后再创建总表. 为了保证数据库的索引跟excel的索引一致,我们需要对model中的索引字段做一系列的处理(可能这是一个野路子). 首先当然是先
-
解决Django数据库makemigrations有变化但是migrate时未变动问题
写models.py时缺少了一个 verbose_name,导致数据库出现问题,整了很久,摸索出重新建立数据库的方法: 首先删除每个app中的migrations中的除了init.py的文件,在数据库中清空所有的表,然后执行migrate,这时会自动生成系统默认的那些表,然后执行makemigrations,再执行migrate 如果只是众多应用中的一个出了问题的话,删除与之相关的表,然后进入django_migrations表中,将相应的app那项记录删除,然后再执行 makemigratio
-
Django数据库连接丢失问题的解决方法
问题 在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 OperationalError: (2006, 'MySQL server has gone away') OperationalError: (2013, 'Lost connection to MySQL server during query') 查询mysql全局变量SHOW GLOBAL VARIABLES;可以看到wait_timeout,此变量表示连接空闲时间.如果客户端使用一个连接查询多次数
-
关于django 数据库迁移(migrate)应该知道的一些事
命令 首先数据库迁移的两大命令: python manage.py makemigrations & python manage.py migrate 前者是将model层转为迁移文件migration,后者将新版本的迁移文件执行,更新数据库. 这两中命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作.如果想对部分app进行操作,就要在其后追加app name: $ python manage.py makemigrations app_name $ python manage.
-
django2.2版本连接mysql数据库的方法
一.运行项目报错信息如下: File "/home/pyvip/.virtualenvs/myblog/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 36, in <module> raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version
-
使用Django连接Mysql数据库步骤
链接mysql步骤 第一步:在终端下载pymysql文件–pip install pymysql 第二步:在gjango项目的__init__文件中添加代码 import pymysql pymysql .install_as_MySQLdb() 第三步:找到mysql的连接源,然后填信息,如果没有mysql驱动,需要下载MySQL驱动 mysql的配置:进入settings文件中找到DATABASES配置信息 DATABASES = { 'default': { 'ENGINE': 'djan
-
django 连接数据库 sqlite的例子
Aphorism the fight is worth it. django models 连接 sqlite 数据库 django 版本为 1.11.7 在 blog 项目下创建一个 app article :python manage.py startapp article 在 blog 项目结构下会多出一个 article 目录 在 article 下面的 models.py 文件中输入 from django.db import models class Article(models.M
-
Django 查询数据库并返回页面的例子
views.py 视图文件 message = None all_message = UserMessage.objects.filter(name='测试2') if all_message: message = all_message[0] return render(request, 'message_form.html',{ 'my_message':message }) .html 模板文件 <input id="name" type="text"
-
Django app配置多个数据库代码实例
这篇文章主要介绍了Django app配置多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 每个app使用不同的数据库 1. 配置数据库连接 # settings.py # DATABASES中必须要有default字段 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db', 'USER': '', 'PASSWORD': ''
-
Spring boot2.x中集成H2数据库代码实例
这篇文章主要介绍了Spring boot2.x中集成H2数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在spring boot中集成 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </d
-
Java连接mysql数据库代码实例程序
这篇文章主要介绍了java连接mysql数据库代码实例程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用java 联接mysql的实例 在联接的时候,先确保本机安装了mysql或者服务器是安装了mysql import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; imp
-
python读取ini配置的类封装代码实例
这篇文章主要介绍了python读取ini配置的类封装代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 此为基础封装,未考虑过多异常处理 类 # coding:utf-8 import configparser import os class IniCfg(): def __init__(self): self.conf = configparser.ConfigParser() self.cfgpath = '' def checkSec
-
Mysql备份多个数据库代码实例
这篇文章主要介绍了Mysql备份多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 备份数据脚本 #!/bin/bash # date是linux的一个命令 date [参数] [+格式] time=` date +%Y_%m_%d_%H_%M_%S ` # 备份输出路径 backupdir=/home/backup/ # 备份文件路径 filedir=/home/my_app/files/ # 用sql语句取出所有以'test'
-
Django QuerySet查询集原理及代码实例
一 概念 Django的ORM中存在查询集的概念. 查询集,也称查询结果集.QuerySet,表示从数据库中获取的对象集合. 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据. filter():返回满足条件的数据. exclude():返回满足条件之外的数据. order_by():对结果进行排序. 对查询集可以再次调用过滤器进行过滤,也就意味着查询集可以含有零个.一个或多个过滤器.过滤器基于所给的参数限制查询的结果. 从SQL的角度讲,查询集与
-
Springcloud Eureka配置及集群代码实例
springcloud微服务包含的技术种类众多,eureka作为其注册中心,一直处于主流,但在今年已经处于永久停更状态,但其优秀的能力还是值得学习. 整体价格采用聚合工程,后续也存在于聚合工程内. 1.首先配置pom工程的依赖 <dependencies> <!-- eureka-server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId&
-
Powershell访问SQL Server数据库代码实例
支持所有版本的SQLserver. 你是否需要连接数据库?这里有一段代码演示如何查询和获取SQL数据,只需非常简单正确的配置你的账户信息.服务器地址及SQL语句就行: 复制代码 代码如下: $Database = 'Name_Of_SQLDatabase' $Server = '192.168.100.200' $UserName = 'DatabaseUs
-
Shell、Perl、Python、PHP访问 MySQL 数据库代码实例
下午写了一个简单的 bash 脚本,用来测试程序,输入一个测试用例文件,输出没有通过测试的用例和结果,然后把结果保存到数据库里.如何在 bash 脚本里直接访问数据库呢?既然在 shell 里可以直接用 mysql 命令操作数据库,那么在 shell script 里也应该可以通过调用 mysql 来操作数据库.比如用下面的 bash shell 脚本查询数据库: Bash 复制代码 代码如下: #!/bin/bash mysql -uvpsee -ppassword test << EOFM
-
SpringBoot Shiro配置自定义密码加密器代码实例
shiro主要有三大功能模块: 1. Subject:主体,一般指用户. 2. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件.(类似于SpringMVC中的DispatcherServlet) 3. Realms:用于进行权限信息的验证,一般需要自己实现. 细分功能 1. Authentication:身份认证/登录(账号密码验证). 2. Authorization:授权,即角色或者权限验证. 3. Session Manager:会话管理,用户登录
随机推荐
- Python查询阿里巴巴关键字排名的方法
- 浅谈mysql的中文乱码问题
- PHP库 查询Mongodb中的文档ID的方法
- js/jquery判断浏览器类型的方法小结
- Java连接ftp服务器实例代码
- python简单实现基于SSL的IRC bot实例
- 原生javascript实现分享到朋友圈功能 支持ios和android
- 利用switch语句进行多选一判断的实例代码
- python3中int(整型)的使用教程
- 详谈mysqldump数据导出的问题
- 完美解决ajax跨域请求下parsererror的错误
- javascript实现动态加载CSS
- 深入理解JavaScript系列(31):设计模式之代理模式详解
- Mongodb 启动命令mongod参数说明(中文翻译)
- JavaScript入门教程(1) 什么是JS
- JQuery一种取同级值的方式(比如你在GridView中)
- Android接入支付宝实现支付功能实例
- java实现单词搜索迷宫游戏
- Visual Studio 2017 community安装配置方法图文教程
- C语言实现餐饮结账管理系统