精华内容
下载资源
问答
  • Django 索引与联合索引

    2019-11-15 01:42:38
    索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件 Django中建立索引 class PressureSensor(models.Model): store = models.ForeignKey(Store...

    索引

    索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写操作时,还要操作索引文件

    Django中建立索引

    class PressureSensor(models.Model):
        store = models.ForeignKey(Store, verbose_name='门店ID', on_delete=models.CASCADE)
        barcode = models.CharField(verbose_name='货架码', max_length=12, db_index=True)
    

    当然,除了这一种方式外,还有以下两种,分别是:

    • unique_together 联合主键,包含 index_together
    • index_together 组合索引
        class Meta:
            unique_together = [["store", "barcode"], ["store", "mac_addr_no"]]
    
        class Meta:
            index_together = ["store", "sensor"]
    

    联合索引:

    Django索引原则:

    • 主键必定是索引
    • Django默认会为每个Foreginkey创建一个索引

    在Django model中对一张表的几个字段进行联合约束和联合索引,例如在购物车表中,登录的用户和商品两个字段在一起表示唯一记录。

    举个栗子:
    Django model中购物车表 

    class Cart(models.Model):
        user = models.ForeignKey(
            MyUser,
            verbose_name="用户"
        )
        goods = models.ForeignKey(
            Goods,
            verbose_name="商品"
        )
        num = models.IntegerField(
            verbose_name="商品数量"
        )
        is_select = models.BooleanField(
            default=True,
            verbose_name="选中状态"
        )
     
        class Meta:
            # 联合约束   其中goods和user不能重复
            unique_together = ["goods", "user"]
            # 联合索引
            index_together = ["user", "goods"]
    
    # unique_together = ["goods", "user"]  表示联合约束,其中"goods"和"user"表示不能重复,不能一样。
    # index_together = ["user", "goods"] 表示联合索引,其中"goods"和"user"联合同步查询,提高效率。

    联合索引的优势
    ​ 示例SQL:select * from person where a=100 and b=100 and c=1000;

    ​ 假设你的数据有一千万条 每次条件过滤 省10%的数据

    ​ 1 如果三个单索引 先拿a的索引找 剩下100万数据 然后拿b条件找 剩十万 再c条件找 最后得到一万数据

    ​ 2 如果是联合索引 他 一千万数据*10% * 10% * 10% 直接得到一万条数据

    ​ 建立联合索引的同时 还会给他们之间的组合建立索引
     

    展开全文
  • 主要介绍了简单了解django索引的相关知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Django 建立索引

    千次阅读 2020-06-18 00:22:28
    数据库数据规模挺大的,建立索引以加速查询。...Django项目中如果你需要频繁地对数据表中的某些字段(如title)使用filter(), exclude()和order_by()方法进行查询,我们强烈建议你对这些字段建议索引(index), 提升查询

    数据库数据规模挺大的,建立索引以加速查询。

    通过db_index和Meta index选项给数据表字段建立索引

    使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,没有索引目录的话,你访问书中某个页面需要从第1页遍历到最后一页,如果有目录,你可以快速地根据目录查找到所需要的页面。Django项目中如果你需要频繁地对数据表中的某些字段(如title)使用filter(), exclude()和order_by()方法进行查询,我们强烈建议你对这些字段建议索引(index), 提升查询效率。

    要对模型中的某个字段建立数据库索引,你可以使用db_index选项,也可以使用Meta选项建立索引。使用Meta选项的好处是你可以一次性对多个字段建立索引,还可以对多个字段建立组合索引。

    代码如下:

    class CountryData(models.Model):
        date = models.DateField()
        country = models.ForeignKey(Country, on_delete=models.CASCADE, default="")
        confirm_add = models.IntegerField(default=0)
        confirm = models.IntegerField(default=0)
        heal = models.IntegerField(default=0)
        dead = models.IntegerField(default=0)
    
        def __str__(self):
            return str(self.country) + " " + self.date.strftime("%Y/%m/%d")
    
        class Meta:
            indexes = [models.Index(fields=['country']), ]
    

    同时Meta中还可以定义联合索引:

    index_together = ["user", "goods"]

    联合约束:(即goods与user不相同)

    unique_together = ["goods", "user"]

     

    展开全文
  • Django数据库查询

    2019-01-06 17:59:51
    首先通过Django管理添加几条数据到student数据表里 关于图片: 安装pillow python最广泛的图片处理模块pillow 语句pip install pillow 我们安装pillow来使用ImgField 如果信息中有图片,在数据建模时在models....

    首先通过Django管理添加几条数据到student数据表里
    在这里插入图片描述
    关于图片
    安装pillow python最广泛的图片处理模块pillow
    语句pip install pillow
    我们安装pillow来使用ImgField
    如果信息中有图片,在数据建模时在models.py中按照如下格式书写
    photo = models.ImageField(upload_to="static\image")其中引号内的内容为图片上传到的路径,不写的话会放到根目录里

    查询
    student_list = Student.objects.all()——查询所有
    student_list = Student.objects.filter(age=18)——条件过滤
    onestudent = Student.objects.get(id=1)——查询单个,条件要唯一,不然会报错
    注意:Django ORM返回quary_set对象

    1、在template文件夹下建一个名为studentList.html的HTML文件内容暂不填写
    2、打开APP目录下的视图文件views.py文件
    在这里插入图片描述
    写入如下内容
    在这里插入图片描述
    3、在studentList.html文件中写入如下内容
    在这里插入图片描述
    4、打开索引文件urls.py将我们刚才写在视图文件views.py中的studentList函数导入进去
    在这里插入图片描述在这里插入图片描述
    5、在浏览器地址栏输入http://127.0.0.1:8000/studentList/查看效果
    在这里插入图片描述
    一个简单的查询就成功了

    进一步完善,能够实现点击学生姓名查看学生详细信息
    1、在template文件夹下建一个名为student.html的HTML文件内容暂不填写
    2、在视图文件views.py新建一个函数,暂不填写内容
    在这里插入图片描述3、打开索引文件urls.py将我们刚才写在视图文件views.py中的student函数导入进去
    在这里插入图片描述
    4、将studentList.html中的姓名项改为a标签
    在这里插入图片描述
    5、完善视图文件views.py中的student函数
    在这里插入图片描述

    6、完善student.html使之能够显示学生详细信息
    在这里插入图片描述
    7、现在点击学生姓名可以查看学生详细信息了
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Django 学习索引

    2020-11-19 18:20:42
    基础 Django 简介及简单命令的使用 Django 的生命周期 修改配置文件(settings.py) 三大系统(路由/视图/模板) 数据库相关(配置引擎, 操作语句) ORM 操作(13 条) 使用 admin 系统(优化管理页, 条目页, 数据页) form ...
    展开全文
  • Django数据库查询案例

    2019-10-05 09:56:45
    查询场景举例 from datetime import date from django.db.models import F, Q, Sum, Max from django.http import HttpResponse from django.shortcuts import render #导入模型类 from .models import BookInfo,...
  • django模型创建索引In this tutorial, we’re going to learn about models in django. 在本教程中,我们将学习django中的模型。 Models are connected to our database. We can also say that a model contains ...
  • django models索引

    千次阅读 2019-07-26 12:31:40
    from django.contrib import admin from driver.models import Driver # Register your models here. admin.site.register(Driver) 创建admin用户 python manage.py createsuperuser 如何命中索引
  • I am trying to add indexes on model fields using Field.db_index for an app that has ... Looking at Django's documentation all I need to do is to set db_index=True:class Person(models.Model):fi...
  • Django执行查询操作

    千次阅读 2018-04-10 19:58:07
    转载:Django执行查询只要创建好数据模型, Django 会自动为生成一套数据库抽象的API, 可以让你创建、检索、更新和删除对象。这篇文档阐述如何使用这些API。 关于模型查询所有选项的完整细节,请见数据模型参考 。在...
  • Django学习笔记索引

    2021-04-24 15:21:19
    HTTP协议 Django路由系统 Django视图 Django模板系统 Object Relational Mapping(ORM) Django ORM操作 Cookie和Session Django中间件 AJAX Django form表单
  • django查询

    千次阅读 2018-07-16 20:22:55
    Django的ORM中存在查询集的概念。 查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():...
  • Django查询集QuerySet

    2018-08-12 10:41:42
    Django的ORM中存在查询集的概念。 查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。 当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表): all():返回所有数据。 filter():...
  • django 浅谈索引

    万次阅读 2018-06-20 17:46:26
    由于数据库每天都用来存储越来越多的信息,因此这些也是每个Django项目中的关键组件。 因此了解它们的工作方式非常重要。 当然,我无法解释所有可用于Django的不同数据库的全部细节。 不仅如此,因为我不知道这一切...
  • django-索引1909

    2019-09-03 23:20:51
    django-模型类操作-初期阶段-小结 - pyhui的python全栈技术博客 - CSDN博客 https://blog.csdn.net/ifubing/article/details/100083576?tdsourcetag=s_pcqq_aiomsg
  • Django框架学习索引

    2019-07-23 02:02:00
    索引目录 1.Django介绍与安装 2.Django流程及模式 3.Django基本配置 4.Django模板(Templages) 1.Django的介绍和安装 3.Django框架模式 4.数据库的操作 (CRUD 操作 ) 5.cookies和 session( 会话 ) 6....
  • 使用DjangoORM进行简单数据库查询 使用双下划线进行条件查询 关联表使用下划线反向查询 使用Django-filter查询 正文 一、使用Python直接操作数据库 import psycopg2 # 连接数据库有两种方式 # 方式一 conn =...
  • Django数据库查询优化

    2015-10-22 09:50:46
    一 利用标准数据库优化技术: 传统数据库优化技术博大精深,不同的数据库有不同的优化技巧,但...Django建立实体的时候,支持给字段添加索引,具体参考Django.db.models.Field.db_index。按照经验,Django建立实体
  • django 建立安全索引

    2019-07-15 10:45:00
    上篇记录使用“CONCURRENTLY” 命令行执行不锁表索引,对于django, 如何执行呢?这里记录一种方法,修改django迁移文件。  在执行完迁移后,为了方便找到该迁移文件,可以采用指定命名迁移 python manage.py ...
  • 索引Index 选项fieldsnamedb_tablespace 索引类可轻松创建数据库索引。...索引是在 django.db.models.indexes 中定义的,但为方便起见,它们被导入到 django.db.models。标准约定是使用from django.db import m...
  • Django查询Django查询返回指定数量的数据: dan_result = TrendData.objects.all().order_by('id')[-20:] 报以下错误: Traceback (most recent call last): ... AssertionError: Negative indexing is ...
  • 上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。不管什么查询,返回的结果都基本是查询集Quer...
  • 要求 Django 1.8或更高版本 文献资料 要构建文档,请进入docs目录并键入: make html 该文档将使用docs / _build / index.html的索引进行构建
  • django使用全文索引

    2019-10-29 17:45:44
    我们在面对商品搜索时可以通过使用sql语句进行查询,但是这样效率很低,推荐使用全文搜索框架进行检索。 haystack及whoosh介绍 haystack 是django的开源搜索框架,该框架支持Solr、Elasticsearch、Whoosh、Xapian...
  • django-查询集特性

    2019-08-29 23:04:30
    查询集的特性 查询集的切片操作 》普通切片操作,支持 》负数倒数切片,不支持 会报错 索引取值操作 》超出范围的索引,取值报错。 》取出查询集中第一条数据,两种方法 判断查询集中是否有数据 ...
  • Django数据库查询¶ 常用过滤查询 exact 完全匹配 举例: Entry.objects.get(id__exact=14) Entry.objects.get(id__exact=None) SQL equivalents: SELECT ... WHERE id = 14; SELECT ... WHERE id IS NULL; iexact ...
  • Django字典与索引检索

    2020-05-13 16:43:37
    循环给字典赋值,索引是某个position_id: for row in range(0, nrows): ... record_position[camera.position_id] = happen_date 从数据库取一列工单数据与字典进行比较,判断的是字典的索引里如果不含有某个...
  • 我一直觉得自己是不是特别笨,Django大家都说简单,我看书了好久,看视频也是好久,总难以入门,还要写文章记下来,不过没办法,既然要学,还是写吧。 1、templates 目录 这个目录是django最重要的目录,因为以后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,708
精华内容 7,483
关键字:

django的索引查询