路由策略

# -*- coding: utf-8 -*-
from django.conf import settings class DatabaseAppsRouter(object):
"""
A router to control all database operations on models for different
databases. In case an app is not set in settings.DATABASE_APPS_MAPPING, the router
will fallback to the `default` database. Settings example: DATABASE_APPS_MAPPING = {'app1': 'db1', 'app2': 'db2'}
""" def db_for_read(self, model, **hints):
""""Point all read operations to the specific database."""
if model._meta.app_label == 'yw_monitor':
return 'webmonitor'
return None def db_for_write(self, model, **hints):
"""Point all write operations to the specific database."""
if model._meta.app_label == 'yw_monitor':
return 'webmonitor'
return None def allow_relation(self, obj1, obj2, **hints):
"""Allow any relation between apps that use the same database."""
if obj1._meta.app_label == 'yw_monitor' or obj2._meta.app_label == 'yw_monitor':
return True
return None def allow_migrate(self, db, app_label, model_name=None, **hints):
"""Make sure that apps only appear in the related database.""" if app_label == 'yw_monitor':
return db == 'webmonitor'
return None

django 多数据分库的更多相关文章

  1. Django 实现分库

    网站后端的数据库随着业务的不断扩大,用户的累积,数据库的压力会逐渐增大.一种办法是优化使用方法,也就是的优化 SQL 语句啦,添加缓存以达到减少存取的目的:另外一种办法是修改使用架构,在数据库层面上「 ...

  2. django数据库分库migrate

    最近在研究微服务和分布式,设计到了数据库分库,记录一下 首先,创建多个数据库,如果是已经生成的数据库,可以分库,这里我是新创建的项目,刚好可以用来尝试 我是用docker创建的mysql数据库容器 拉 ...

  3. Django 数据库读写分离 分库分表

    多个数据库 配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BA ...

  4. django数据库读写分离,分库

    读写分离 在settings中配置不同名称的数据库连接参数,并配置一条数据库选择路由 DATABASES = { 'default': { 'ENGINE': 'django.db.backends. ...

  5. django数据库配置,即数据库分库分表

    一 Django的数据库配置 (一)修改settings.py文件关于数据库的配置: Django默认使用sqlite:   DATABASES = { 'default': { 'ENGINE': ...

  6. Django - 一对多数据示例

    1.增加Host -id 可以在模版中增加代码: 备注: 1.counter (从1开始) 2.counter0(从0开始) 3.revcounter(倒序) 4.revcounter0(倒序从0开始 ...

  7. python Django html 一对多数据实例 模态对话框添加数据

  8. Django Web补充

    一.今日内容 一.Django ORM连表操作 Q,F 二.Form表单验证 面向对象 正则 三.Session框架 面向对象 cookie toanado扩展 二.Django ORM一对多数据创建 ...

  9. Django web 基础

    一.Django概述 Django大而全; 创建Django工程:django-admin startproject sitename 创建django之后生成的目录结构如下: Project Pro ...

随机推荐

  1. R语言低级绘图函数-axis

    axis函数用来在一张图表上添加轴线,区别于传统的x轴和y轴,axis 允许在上,下,左, 右4个方向添加轴线 以x轴为例,一条轴线包含3个元素,水平的一条横线,叫做axis line , 刻度线, ...

  2. R语言低级绘图函数-title

    title 函数用来在一张图表上添加标题 基本用法: main 表示主标题,通常位于图像的上方, sub 表示副标题,位于图像的下方, xlab 表示x轴的标签,ylab 表示y轴的标签 par(om ...

  3. 修改查看MYSQL字符集(charset)

    From: http://www.cnblogs.com/fengqingtao/archive/2010/11/23/1885220.html 查看mysql的字符集 mysql> show ...

  4. shiro缓存

    shiro的可以权限控制内容包括:URL地址.Web页面的元素.以及方法,即shiro对用户权限的控制是细粒度的.从用户的一次访问来说,他可能需要最多经过三种.多次的验证.这里的多次怎么说呢?如果说W ...

  5. Git 的BUG小结

    Git 的BUG小结 Git 在push的时候出现了: fatal: The remote end hung up unexpectedly 在网上找了非常多  发现出现了下面错误提示也可能是同样的问 ...

  6. row_number()over函数的使用(转)

    (转)http://hi.baidu.com/122439049/blog/item/0c9c48131b2734d5f7039e13.html row_number() OVER (PARTITIO ...

  7. swift -- 如何在swift下,使用类似oc的pch文件功能

    以前在做oc下的项目的时候,pch文件是必创建的,因为实在是太方便了,只要在build setting里面把pch的路径换成绝对路径,那么剩下的,想干什么就在里面干什么,但是swift下,可以实现这种 ...

  8. swift学习笔记之控制流

    控制流: 1.if语句 let count = { print("yes") }else{ print("no") } 2.switch语句 (1)Swift中 ...

  9. /etc/hostname

    我们可以使用 hostname 命令来修改主机名,但只是临时生效,如果想永久生效可以编辑 /etc/hostname 文件,注意不是每个 Linux 发行版都有该文件 root@Ubuntu_Lee: ...

  10. 基于麒麟座开发板2.0的MQTT实现例程

    链接--->https://sanwen8.cn/p/649shZ1.html OneNET现已全面适配标准MQTT协议,相信这一功能的增加会**便于开发者进行设备的接入. OneNET提供了M ...