面试总结(1)

Django自定义模板

  1. 在app应用下创建templatetags文件夹,如:users/templatetags
  2. 创建_init_.py文件
  3. 示例代码 filters.py
#coding=utf-8
from django.template import Library
register = Library()

@register.filters
def mod(value):
  return value%2
  1. 模板中使用过滤器
{% load filters %}
{% if book.id|mod %}

装饰器

  1. 记录函数执行时间的装饰器
    decorator_1.py
# coding=utf-8
def changeMod(pre='isSecond'):
    """扩展原有装饰器功能,在原有装饰器基础上设置外部变量"""
    def tastTime(func):
        import time

        def wrapper(*args, **kw):
            t1 = time.clock()
            if pre == 'isSecond':
                func(*args, **kw)
                t2 = time.clock()
                print 'Having using %.9f times' % (t2 - t1)
            else:
                func(*args, **kw)
                t2 = time.clock()
                print 'Having using {} times' .format(t2 - t1)
        return wrapper
    return tastTime


@changeMod(pre='isMin')
# @changeMod()
def printWord(word):
    print word


printWord('hello world')

斐波那契数列

# coding=utf-8
def fib1(n):
    """递归方式,效率较慢"""
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n - 1) + fib(n - 2)


# print fib1(10)

# ******************************************** #

dic = {0: 0, 1: 1}


def fib2(n):
    """递归方法,并检验是否计算过"""
    if n not in dic:
        dic[n] = fib2(n - 1) + fib2(n - 2)
    return dic[n]


# print fib2(10)

# ******************************************** #


def fib3(n):
    """迭代方式"""
    a, b = 0, 1
    for i in range(n):
        a, b = b, a + b
    return a


# print fib3(10)

# ******************************************** #

快速排序

# coding=utf-8
def quickSort(lists):
    less = []
    privotList = []
    more = []

    if len(lists) <= 1:
        return lists
    else:
        privot = lists[0]
        for i in lists:
            if i < privot:
                less.append(i)
            elif i > privot:
                more.append(i)
            else:
                privotList.append(i)

        less = quickSort(less)
        more = quickSort(more)

    return less + privotList + more


lists = [1, 2, 3, 4, 5, 7, 1, 5, 2, 0, 8, 5, 8, 2, 9, 4]

new_lists = quickSort(lists)
print(new_lists)

冒泡排序

# coding=utf-8
def bubbleSort(lists):
    for i in range(0, len(lists)):
        for j in range(i + 1, len(lists)):
            if lists[i] > lists[j]:
                lists[i], lists[j] = lists[j], lists[i]
    return lists


lists = [1, 2, 34, 5, 6, 7, 8, 0, 123, 5, 61, 23, 1, 2, 5, 0]

new_lists = bubbleSort(lists)
print new_lists

桶排序

# coding=utf-8
def bucketSort(lst):
    pre_list = [0] * 10
    for sorce in lst:
        pre_list[sorce - 1] += 1

    result = []
    i = 0
    while i < len(lst):
        j = 0
        while j < pre_list[i]:
            result.append(i + 1)
            j += 1
        i += 1
    print result


lst = [7, 9, 3, 5, 7, 10, 5, 4, 8, 3]
bucketSort(lst)

Bootstrap栅格

考察实现过程
css中使用@media,来规定每一个class不同尺寸占用的栅格数

/* lg占用3个栅格,md占用3个栅格,sm占用6个栅格 */
<div class="col-lg-3 col-md-3 col-sm-6"><div class="box"></div></div>

redis相关

  1. 5种类型:string,list,hash,set,zset
  2. set一个数字,拿出来的值是什么

考察是否知道在存的时候有数据类型转换

python@ubuntu:~$ redis-cli
127.0.0.1:6379> get keys*
(nil)
127.0.0.1:6379> set isNumber 10
OK
127.0.0.1:6379> get isNumber
"10"
127.0.0.1:6379>

Django用户认证系统

在Django中自定义身份验证

scrapy模块流程

scrapy框架解读--深入理解爬虫原理

生成器

迭代器

前后端分离

进程线程协程

  1. 进程资源控制
  • multiprocessing.Lock
  • multiprocessing.Semaphore
  • multiprocessing.Event

Git相关操作

MySQL查询

MySQL高可用性

MySQL高可用方案选型参考

MySQL索引原理

MySQL索引背后的数据结构及算法原理

时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度-总结

MySQL MongoDB Redis选择

HBase vs. MongoDB vs. MySQL vs. Oracle vs. Redis,三大主流开源 NoSQL 数据库的 PK 两大主流传统 SQL 数据库

MySQL索引

MySQL索引及查询优化总结

索引是MySQL提高数据查询效率的数据结构

  1. 普通索引
create index indexName on MyTable(cloumnName(length));
alter MyTable add index indexName on (cloumnName(length));
drop index indexName on MyTable;
  1. 唯一索引
create unique index indexName on MyTable(cloumnName(length));
alter MyTable add unique index indexName on (cloumnName(length));
  1. 主键索引
  • 一个表只能有一个主键
  1. 组合索引
CREATE TABLE mytable(  

ID INT NOT NULL,   

username VARCHAR(16) NOT NULL,  

city VARCHAR(50) NOT NULL,  

age INT NOT NULL

);  
create index indexName on MyTable(username(16),city,age);
alter MyTable add index indexName (username(16),city,age);

上述建索引的方式相当于建立了下面三种组合索引(MySQL最左前缀)

username,city,age
username,city
username

下面几个sql会用到索引

select * from MyTable where username='admin' and city='BeiJing';
select * from MyTable where username='admin';

下面几个就不会走索引

select * from MyTable where username='admin' and age=20;
select * from MyTable where age=20;
  1. 建索引的时机
    WHERE、ORDER_BY

在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引
例如:

like 'Python%'

会走索引

like '%Pyhton%';
like '%Python';

就不会走索引

  1. 全文索引:MyISAM,聚簇索引:InnoDB

  2. 其他注意点
    因为在以通配符%和_开头作查询时,MySQL不会使用索引
    索引不会包含有NULL值的列
    不使用NOT IN和<>操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,426评论 6 428
  • 问题归纳 1.如何在OC中调用swift的文件? 步骤:直接托swift文件 --> 建立桥接头文件 --> ta...
    chen千千万万遍阅读 3,840评论 0 16
  • 1、创建线程的集中不同的方式?你喜欢哪一种? 答:有三种方式来创建线程:继承Thread类 、实现Runnable...
    栋哥0228阅读 220评论 0 3
  • 本文我们将讨论java面试中经常出现的考题,相信网上会有一大堆,但是只是笼统的说可一些答案,本文将进行总结出现概率...
    栋哥0228阅读 151评论 0 5
  • 初学者 你经历的每一件事都会成为未来的部分,具体看你如何对待了. 0:前言 作为一个初学者,对知识的理解存在着很多...
    谢小路阅读 1,223评论 10 18