zoukankan      html  css  js  c++  java
  • 1. 元信息:Meta类 2. 基于对象查询的sql优化 3. 自定义:Group_Concat() 4. ajax前后台交互

    、元信息

    '''
    1. 元信息
    1. Model类可以通过元信息类设置索引和排序信息
    2. 元信息是在Model类中定义一个Meta子类
    
    class Meta:
        # 自定义表名
        db_table = 'table_name'
        # 联合索引
        index_together = ('tag1', 'tag2')
        # 联合唯一索引
        unique_together = ('tag3', 'tag4')
        # 排序字段
        ordering = 'ordering_tag'
        # /admin/中显示的表名称
        verbose_name = 'table_name'
    '''

    二.基于对象查询的sql优化

    '''
    1. 语法:only('tag_name1', ..., 'tag_name2') | defer('tag_name1', ..., 'tag_name2')
    2. 属于QuerySet的方法用.调用
    3. 用来优化面向对象查询的sql
    4. only代表哪些字段参与查询,defer表示哪些字段不参与查询
    
    # 好处:信息存放在对象中,取值方便
    # 坏处:所有字段都进行查询
    # uq1 = Uesr.objects.all()
    # print(uq1)
    # print(uq1.query)
    
    # only: 只取规定的字段形成对象(查主键)
    # uq11 = Uesr.objects.all().only('name', 'age')
    # print(uq11)
    # print(uq11.query)
    # print(uq11.first().name)
    # print(uq11.first().gender)  # 自己又重新执行了查询该字段的sql
    
    # defer:只取规定的字段外的字段形成对象(查主键)
    # uq12 = Uesr.objects.all().defer('name', 'age')
    # print(uq12)
    # print(uq12.query)
    
    # 好处:只对所需字段进行查询
    # 坏处:数据放在字典中,相比对象取值不是那么方便
    # uq2 = Uesr.objects.values('name', 'age')
    # print(uq2)
    # print(uq2.query)
    '''

    三.自定义:Group_Concat()聚合函数

    from django.db.models import Aggregate, CharField
    class Concat(Aggregate):
        function = 'GROUP_CONCAT'
        template = '%(function)s(%(distinct)s%(expressions)s)'
    
        def __init__(self, expression, distinct=False, **extra):
            super(Concat, self).__init__(
                expression,
                distinct='DISTINCT ' if distinct else '',
                output_field=CharField(),
                **extra)

    四.基于jQuery的ajax异步请求

    <script src="jquery.js"></script>
    <script>
        $.ajax({
            url: '请求路径',
            type: 'get|post',
            data: {
                // post请求数据
            },
            success: function(data) {
                // 请求的回调函数
            }
        })
    </script>

     

  • 相关阅读:
    双机调试环境部署
    VC++中通过MultiByteToWideChar将string|char*转换为wstring|wchar_t*
    Unicode环境下的类型转换
    SQL调优日记之发挥SQL性能与你的写法有关--对比三种方式实现相同功能
    从MS SQL删除大数据说开去
    Microsoft SQL Server Reporting Services (SSRS)报表技巧之在图表中增加参考线
    想个法子找出性能差的SQL
    MS SQL,数据库增长时众多表中谁是你关注的目标
    TSQL 日期处理总结
    投入.NET,我的第一篇BLOG
  • 原文地址:https://www.cnblogs.com/lizeqian1994/p/10497755.html
Copyright © 2011-2022 走看看