Django 之 分表
app名称为‘core’,基本的models.py文件内容如下:
class Province(models.Model):
name = models.CharField(u'省份名称',max_length=32)
code = models.IntegerField(verbose_name=u'区号', unique=True) def __unicode__(self):
return self.name class Meta:
verbose_name = u'省份列表'
verbose_name_plural = u'省份列表'
法I:
重构 manager 中的 get_query_set() 方法。
需要说明的是:在 django 默认情况下,会为每一个models 类添加一个名为 objects 的 Manager,这个就是 Province.objects.all() 中 objects 的由来。
修改后的 models.py 代码如下,表结构必须一致:
# coding:utf-8
from django.db import models # Create your models here.
class ProvinceManager(models.Manager):
def get_queryset(self):
# return super(ProvinceManager, self).get_queryset().filter(id=1)
self.model._meta.db_table = 'core_province_1' # 我的app名为core
return super(ProvinceManager, self).get_queryset()
class Province(models.Model):
name = models.CharField(u'省份名称',max_length=32)
code = models.IntegerField(verbose_name=u'区号', unique=True) objects = ProvinceManager() def __unicode__(self):
return self.name class Meta:
verbose_name = u'省份列表'
verbose_name_plural = u'省份列表'
可以多写几个 Manager 来对应不同的表,同时对应多写几个不同的 objects(可以随意起名),在调用时调用相应的 Manager。
法II:
在哪里调用就在哪里更改。更改处添加代码如下:
from core.models import Province Province._meta.db_table = 'core_prvoince_2'
rows = Province.objects.all()
总结:
不论哪种方法,其主要还是要更改 models 的 _meta.db_table 的值
Django 之 分表的更多相关文章
- 数据库分库分表中间件:Mycat;分布式数据库;mysql的分布式事务
官网:http://mycat.io/,里面有电子书籍可以下载:http://www.mycat.io/document/mycat-definitive-guide.pdf 旧版本下载地址:http ...
- Django 数据库读写分离 分库分表
多个数据库 配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BA ...
- django数据库配置,即数据库分库分表
一 Django的数据库配置 (一)修改settings.py文件关于数据库的配置: Django默认使用sqlite: DATABASES = { 'default': { 'ENGINE': ...
- django -- 美多订单分表
订单分表: 随着公司业务增长,如果每天1000多万笔订单的话,3个月将有约10亿的订单量,之前数据库采用单表的形式已经不满足于业务需求,数据库改造迫在眉睫. 解决思路: 按月分表,将原订单表拆分为 o ...
- Django之form表单详解
构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的模板: <form action="/your-name/" method=" ...
- Django--分页器(paginator)、Django的用户认证、Django的FORM表单
分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['joh ...
- CRL快速开发框架系列教程十一(大数据分库分表解决方案)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- WebGIS项目中利用mysql控制点库进行千万条数据坐标转换时的分表分区优化方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 项目中有1000万条历史案卷,为某地方坐标系数据,我们的真实 ...
- 分享一个MySQL分库分表备份脚本(原)
分享一个MySQL分库备份脚本(原) 开发思路: 1.路径:规定备份到什么位置,把路径(先判断是否存在,不存在创建一个目录)先定义好,我的路径:/mysql/backup,每个备份用压缩提升效率,带上 ...
随机推荐
- EM界面 ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID (DBD ERROR: OCIServerAttach)
我的是10g,打开EM,另外都正常,就有这个问题到实例的代理连接 状态 失败 详细资料 ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID (DBD ERROR: OCI ...
- XenServer安全重启xapi的方法
XenServer安全重启xapi的方法 2012-11-29 12:58:07| 分类: 虚拟化-XenServer|字号 订阅 平常我们很常用到重启xapi命令,在这介绍下xapi: XAPI( ...
- 嵌入式(Embedded)Neo4j数据库访问方法
应用中采用嵌入式Neo4j(Embedded Neo4j)数据库,插入数据后不知道如何访问.查询之后知道有Neoclipse这个可视化工具,最新版本是1.9.5.添加目录后报错: 应该是Neoclip ...
- php 函数strpos()
strpos() 函数查找字符串在另一字符串中第一次出现的位置. strpos(string,find,start) 返回 从string中的start位置开始找find第一次出现的位置 注意: s ...
- uva 12034
/* 比赛的名次的所有方案数 _________________________________________________________________________________ #in ...
- org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection 原因
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection 可能出现的原因 ...
- Android应用开发-数据存储和界面展现(二)(重制版)
SQLite数据库 // 自定义类MyOpenHelper继承自SQLiteOpenHelper MyOpenHelper oh = new MyOpenHelper(getContext(), &q ...
- KO中对象数组排序时,两个属性的优先顺序不一致时的排序实现
function FromSort(left, right, asc) { if (left.属性1 != "") { if (right.属性1 != &qu ...
- cuda-convnet windows8下编译
编译环境: windows8.1 Anaconda python2.7 Visual studio 2012 CUDA6.0 Pthread for windows Intel Math Kernel ...
- linux for循环更改文件名字
#!/bin/bash # for a in CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo Ce ...