1. 面向对象

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

三大特性:

封装:

  -- 将内容封装到对象中

  -- 将方法疯长到类中

  实例:自定义分页,restframework的request,

继承:

  -- 将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法

  涉及 -- 多继承

     -- 经典类 -- 深度优先

     -- 新式类 -- 广度优先

  实例:restframework的apiview继承django的view,django的view继承的基类obj,FORM表单继承forms,forms继承基类obj。

多态:

  -- 多态指的是一类事物有多种形态

多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)
import abc
class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
@abc.abstractmethod
def talk(self):
pass class People(Animal): #动物的形态之一:人
def talk(self):
print('say hello') class Dog(Animal): #动物的形态之二:狗
def talk(self):
print('say wangwang') class Pig(Animal): #动物的形态之三:猪
def talk(self):
print('say aoao')

动物多态

import abc
class File(metaclass=abc.ABCMeta): #同一类事物:文件
@abc.abstractmethod
def click(self):
pass class Text(File): #文件的形态之一:文本文件
def click(self):
print('open file') class ExeFile(File): #文件的形态之二:可执行文件
def click(self):
print('execute file')

文件多态

多态性:

  -- 多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。

#多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)
import abc
class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
@abc.abstractmethod
def talk(self):
pass class People(Animal): #动物的形态之一:人
def talk(self):
print('say hello') class Dog(Animal): #动物的形态之二:狗
def talk(self):
print('say wangwang') class Pig(Animal): #动物的形态之三:猪
def talk(self):
print('say aoao') peo1=peo()
pig1=pig() 多态性:一种调用方式,不同的执行效果(多态性)
多态性依赖于:继承
多态性:定义统一的接口,
def func(obj): #obj这个参数没有类型限制,可以传入不同类型的值
obj.talk() #调用的逻辑都一样,执行的结果却不一样 func(peo1)
func(pig1)

多种形态相同方法

  涉及 -- 鸭子模型

  “当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

  在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为鸭的对象,并调用它的走和叫方法。在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的走和叫方法。

2. django生命周期

请求--wsgi--中间件--URL路由系统--根据url匹配相应的视图函数--view视图函数--models--数据库

--将数据库返回给视图--view视图函数--要展示的数据返回给模版--template模版--渲染成html给用户

3. wsgi协议

wsgi,是协议 ,不属于django,django利用wsgi写socket,请求来到wsig,协议规范wsig和django的程序规范,约束
wsgiref,python模块,是实现了wsgi协议的一个模块。模块本质:一个socket服务端(Django)性能低,测试用的
werkzeug ,是实现了wsgi协议的一个模块。模块本质:一个socket服务端(Flask框架)
tornado ,是实现了wsgi协议的一个模块。模块本质:自己写的soket,也可以用wsgi的,一个socket服务端(tornado框架)
uwsgi,是实现了wsgi协议的一个模块。模块本质:一个socket服务端 (Django)线上部署

4. django rest framework生命周期(cbv)

请求--wsgi--中间件--路由--as.view内部函数view--dispatch--封装,认证,权限,节流--反射--get,post,delete函数

5. 中间件,装饰器

- process_request
- process_view
- process_response
- process_exception
- process_render_template

五种方法

  -- 适用于统一所有请求批量做操作

  实例:

    -- 角色的权限控制 rbac

    -- 用户认证

    -- csrf

      -- 访问给你随机字符串,再来的时候给我带过来   放生在 process view 方法

    -- session

      -- 请求进来拿随机字符串,去数据库拿到相关数据  request.session 就是基于这个中间件

    -- 黑名单

    -- 日志记录

6. rest framework 框架原理

a.认证流程

    dispatch--封装request--initial--perform_authticate--request.user--循环authentication对象执行authenticate方法--反射函数

      authenticate方法的三种返回值,报错,元祖(user对象,token对象),None

headers方法

    b.权限流程

    dispatch--封装request--initial--perform_authticate--循环执行permission的has_permission方法

    has_permission方法的二中返回值,true,false

    has_object_permisson方法

  c.节流  

questions information的更多相关文章

  1. Using Information Fragments to Answer the Questions Developers Ask

    content : 1.采访了11个开发者,获得78个常问的问题:2.对78个问题进行分类,分为8类:These questions span eight domains of information ...

  2. Financial Information Exchange (FIX) Protocol Interview Questions Answers[z]

    What do you mean by Warrant?Warrant is a financial product which gives right to holder to Buy or Sel ...

  3. WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】

    http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...

  4. WCF学习系列三--【WCF Interview Questions – Part 3 翻译系列】

    http://www.topwcftutorials.net/2012/10/wcf-faqs-part3.html WCF Interview Questions – Part 3 This WCF ...

  5. Websites for more Android development information

    There is a vibrant, helpful Android developer community on the Web. Here are a numberof useful websi ...

  6. How To Ask Questions The Smart Way

    How To Ask Questions The Smart Way Eric Steven Raymond Thyrsus Enterprises <esr@thyrsus.com> R ...

  7. Questions that are independent of programming language. These questions are typically more abstract than other categories.

    Questions that are independent of programming language.  These questions are typically more abstract ...

  8. Fisher information matrix笔记

    在看FK论文时,fisher information matrix是必须理解的. 从维基百科查阅到,Fisher information matrix是用利用最大似然函数估计来计算方差矩阵. 来源于: ...

  9. UNIX command Questions Answers asked in Interview

    UNIX or Linux operating system has become default Server operating system and for whichever programm ...

随机推荐

  1. LINUX中的DNS服务---高速缓存DNS

    一.什么是DNS     Domain Name System,域名系统.     万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网.他主要负责把域名和IP的相互转换 ...

  2. Linux:uniq命令详解

    uniq uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用. 语法 uniq(选项)(参数) 选项 -c或——count:在每列旁边显示该行重复出现的次数: -d或--repeat ...

  3. [Linux] 随机切分文件内容

    1.从原文件中随机选出若干行 可以直接用shuf命令就可以完成: $ shuf -n source.txt > target.txt shuf命令的说明: $ shuf --help Usage ...

  4. Ubuntu下快速建立跨多个平台的cocos2d-x项目

    原文:http://www.bennyxu.com/archives/462 这里之讲一点就是如何快速的建立起cocos2d-x项目,同时linux平台的优越性也充分的暴露无遗. 这里默认您已经成功的 ...

  5. 浅谈Eclipse调用Tomcat服务的原理

    浅谈Eclipse调用Tomcat服务的原理 转:http://www.thinksaas.cn/group/topic/341645/ 转:http://www.173it.cn/Html/?581 ...

  6. Codeforces 808G Anthem of Berland【KMP】【DP】

    LINK 简要题意 给你一个串s,上面有字母和一些通配符,问你将通配符换成字母之后最多可以出现多少次串t 首先有一个很傻子的做法就是\(dp_{i,j}\)表示s到第i个位置匹配t串前j个字符的完整t ...

  7. Viterbi算法和隐马尔可夫模型(HMM)算法

    隐马尔可夫模型(HMM)及Viterbi算法 https://www.cnblogs.com/jclian91/p/9954878.html HMM简介   对于算法爱好者来说,隐马尔可夫模型的大名那 ...

  8. hadoop 的job.setOutputKeyClass和job.setOutputValueClass的几个问题

    昨天写了一个mapreduce函数一直有错误,找不到错误,今天找了一天终于解决了,原来是hadoop 的job.setOutputKeyClass和job.setOutputValueClas设置输出 ...

  9. python scrapy ip代理的设置

    在scrapy项目中建一个与spider同级的python目录并在下面添加一个py文件内容为 # encoding: utf-8import base64proxyServer = 代理服务器地址 # ...

  10. selectToUISlider

    版权声明:本文为LZUGIS原创文章,未经同意不得转载. https://blog.csdn.net/GISShiXiSheng/article/details/24304321 用过google e ...