class A:
def __init__(self):
print("A")
class B(A):
pass
#def __init__(self):
# print("B")
class C(A):
def __init__(self):
print("C")
class D(B,C):
pass
#def __init__(self):
# print("D")
d1 = D()
python 2 显示A,python 3显示C
python 2的继承顺序是D -> B -> A -> C 深度优先
python 3的继承顺序是D -> B -> C -> A 广度优先
HTTP协议是超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议。
Django的生命周期
1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端
请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中.2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配,
一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了.3. 视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端.4. 客户端浏览器接收到返回的数据,经过渲染后显示给用户
前端请求—>nginx—>uwsgi.—>中间件—>url路由—->view试图—>orm—->拿到数据返回给view—->试图将数据渲染到模版中拿到字符串—->中间件 —>uwsgi—->nginx—->前端渲染。
三次握手四次挥手的官方解释
HTTP是一个基于TCP/IP通信协议来传递数据
网络的七层协议:
GIL介绍:全局解释器锁
python中GIL使得同一个时刻只有一个线程在一个cpu上执行
TCP和UDP的区别
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少量数据
速度 慢 快
Django中间件
process_request
process_view
process_template_response
process_exception
process_response
mysql的索引
MVC
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范
cookie、session的设置过期时间:
max_age是一个整数,表示在指定秒数后过期。
expires是一个datetime或timedelta对象,会话将在这个指定的日期/时间过期。
如果设置session.permanent=True,那么就会默认在31天后过期。如果不想在31天后过期,那么可以设置app.config[‘PERMANENT_SESSION_LIFETIME’] = timedelta(hour=2)在两个小时后过期。
nginx
反向代理,负载均衡,动静分离