zoukankan      html  css  js  c++  java
  • me 云面试

    元祖的特点:
        1.元组内的元素,不可以增加,删除,只能访问,这个是元祖的特性,比较安全。类似于字符串。但是我们可以对整个元祖进行删除。使用del内置函数
        2.当元祖内只有一个元素的时候,需要加逗号消除歧义。
    实现字典的排序
        字典是无序的,想要变得有序,必须使用有序字典
            import collections
            # 通过OrderedDict类创建的字典是有序的
            dic = collections.OrderedDict()
            dic['k1'] = 'v1'
            dic['k2'] = 'v2'
            dic['k3'] = 'v3'
            print(dic)  #OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
    git命令    
    
    数据库操作的分组聚合
    from django.db.model import Avg,Max,Min
    
    Book.objects.all().aggregate(Avg('price'))  总平均价格
    
    Book.objects.all().aggregate(avg_price = Avg('price'))  总平均价格,指定一个名称
    
    Book.objects.aggregate(Avg('price'),Max('price'),Min('price'))  平均,最大,最小价格
    
    统计每本书作者的个数
    book_list = Book.objects.annotate(authorsNum = Count('authors'))
    
    for book_obj in book_list:
        print('book_obj.title,book_obj.authorsNum')
        
    统计每一个出版社的最便宜的书
    book_list = book.objects.values('publish__name').annotate(MinPrice=Min('price'))
    for book_obj in book_list:
        print(book_obj.price,book_obj.publish__name)
    
        publish.objects.annotate(min_price = Min(book__price)')
    for publish_obj in publish_list:
        print('publish_obj.name,publish_obj.MinPrice')
    统计每一本以py开头的书籍的作者个数:
    model.book.filter(title__startswith="Py").values('authors__name').annotate(Count('authors'))
    
    查询各个作者出书的总价格
    model.book.objects.values('authors__name').annotate(sum_price = Sum('price')).value_list('')
    model.author.objects.annotate(num_price = Sum('book__price')).value_list('name','book__price')
    
    
    
    
    form组件
    
    索引
    
        SQL索引
            1.索引的功能就是加速查找
            2.mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以为,还有约束功能
            索引类型
                普通索引:index
                唯一索引:
                    主键索引frimary key
                    唯一索引unique 加速查找+约束
                联合索引:
                    primary key(id,name) 联合主键索引
                    unique(id,name) 联合唯一索引
                    index(id,name)  联合普通索引
            create table book(
                id int,
                title char(16),
                price flotr,
                index ix_title(title)
                
            );
            
            create index ix_price on book(title);
            
            alter table book add index ix_auther(auther)
            
            
            索引总结
            http://www.cnblogs.com/linhaifeng/articles/7274563.html    
                #1. 一定是为搜索条件的字段创建索引,比如select * from s1 where id = 333;就需要为id加上索引
    
                #2. 在表中已经有大量数据的情况下,建索引会很慢,且占用硬盘空间,建完后查询速度加快
                比如create index idx on s1(id);会扫描表中所有的数据,然后以id为数据项,创建索引结构,存放于硬盘的表中。
                建完以后,再查询就会很快了。
    
                #3. 需要注意的是:innodb表的索引会存放于s1.ibd文件中,而myisam表的索引则会有单独的索引文件table1.MYI
    
                MySAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在innodb中,表数据文件本身就是按照B+Tree(BTree即Balance True)组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此innodb表数据文件本身就是主索引。
                因为inndob的数据文件要按照主键聚集,所以innodb要求表必须要有主键(Myisam可以没有),如果没有显式定义,则mysql系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,则mysql会自动为innodb表生成一个隐含字段作为主键,这字段的长度为6个字节,类型为长整型.
            注意事项
                - 避免使用select *
                - count(1)或count(列) 代替 count(*)
                - 创建表时尽量时 char 代替 varchar
                - 表的字段顺序固定长度的字段优先
                - 组合索引代替多个单列索引(经常使用多个条件查询时)
                - 尽量使用短索引
                - 使用连接(JOIN)来代替子查询(Sub-Queries)
                - 连表时注意条件类型需一致
                - 索引散列值(重复少)不适合建索引,例:性别不适合
        Django索引
            select_related
                使用
                    所有城市所属的省份
                    citys = models.city.objects.select_related('province').all()
                    for p in citys:
                        print(p.province)
                    每个人所居住的省份
                    person_list = models.Person.objects.select_related('living__province').all()
                    for person in person_list:
                        print(person.name,person.living.province.name)
                        
                    
                总结
                    1.select_related主要针对一对一和多对一关系进行优化
                    2.select_related 使用SQLjoin语句进行优化,通过减少select语句的查询次数来进行优化提交
                    3.可以通过可变长参数指定需要select_related 的字段名
    
    项目的主要流程
    
    进程线程协程的区别
        
    自定义模板语法
        
    
    项目有多少人在做   共7个人
        后台管理页面有三人  
        前端页面 2人
        主站有2人
        运维1个
    
        
  • 相关阅读:
    作业: 小型购物系统1---按顺序编写
    字典操作学习小结
    字符操作学习笔记小结
    列表,元组等学习笔记小结
    模块及其数据类型小结
    python3学习笔记----基础知识1
    压力山大
    下周一开始上班啦!
    凌晨12点,沉迷学习,无法自拔...
    web前端开发2018年12月找工作总结
  • 原文地址:https://www.cnblogs.com/ldq1996/p/8618435.html
Copyright © 2011-2022 走看看