内容回顾 重点

     一 . restful   和   APi

  1. 为什么会有 Api 

      为了系统与系统之间的相互调用    ,   Api(应用程序编程接口)

  2. 数据与数据的传输格式

    现在大部分都是json 格式的

json : JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    以前的话还有 xml

      xml :  可扩展标记语言标准通用标记语言的子集)是一种简单的数据存储语言。

  3.  restful 的 十个规范

    1. 根据请求方式(method)的不同, 进行不同的操作:

      GET/POST/PUT/DELETE/PATCH

    2, 面向资源编程

      url结尾建议是名词,

      htttp://www.luffycity.com/ salary(一般情况都是名词,特殊情况也可以用哪个动词,例如:login)

    3. 体现版本

       方式一:

    http://www.luffycity.com/v1/salary

    http://www.luffycity.com/v2/salary

      方式二:

http://www.luffycity.com/v1/salary

      http://www.luffycity.com/v2/salary

    4. 体现 API

          http://www.luffycity.com/v1/salary

          http://api.luffycity.com/v2/salary

     5. 为了安全 推荐使用 Https

    6. 响应式设置状态码

      200:  请求成功

      300: 301 永久重定向,  302 临时重定向

      400:   403, 权限问题    404 找不到页面

      500:  服务器问题

      

         这是浏览器为我们响应式提供的通用状态码,但并不是一成不变的。我们也可以自定义返回状态码。

1
return HttpResponse('abcdefg',status=300)

     7, 条件

一般情况我们需要筛选才能得到我们想要的数据,那么就要在url中添加相应的条件。

    

8. 返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
https://www.luffycity.com/api/v2/salary
            GET: 所有列表
            {
                code: 10000,
                data: [
                    {'id':1,'title':'高亮'},
                    {'id':1,'title':'龙泰'},
                    {'id':1,'title':'小东北'},
                ]
            }
 
            POST: 返回新增的数据
                {'id':1,'title':'高亮'}
 
            https://www.luffycity.com/api/v2/salary/1/
            GET: 获取单条数据
                    {'id':1,'title':'高亮'}
            PUT:更新
                    {'id':1,'title':'高亮'}
            PATCH: 局部更新
                    {'id':1,'title':'高亮'}
            DELETE:删除

9. 返回错误信息

1
2
3
4
{
    code: 100001,
    error: 'xxx错误'
}

10、Hypermedia API

 

为了方便,我们会看情况在里面新添加一条url。

 

总结:

看完了restful规范,我们配置接口时,必须要按照规范来吗?也不一定,还是要看需求。这只是一种规范,只是建议大家按照规范来使用而已。

restful与Django无关,与rest-framework无关,它只是一种规范。

 二  。 http协议

      超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议

     是基于socket使用Tcp协议 进行数据传输,

     是短连接的,一次请求和响应一次之后断开连接;,无状态,这是由于短连接的特性所引发的现象。

    数据格式:

         请求首行;包含请求方法、URI、HTTP版本信息

          请求体:  get请求的参数 放在这里

          请求体:  post 请求携带的数据放在这里

 第三次回顾内容

  

	1. 什么是栈?什么是队列?
		
	2. 笔试题:请手写一个栈和队列?
		
		# 后进先出:栈
		class Stack(obejct):
			def __init__(self):
				self.data = []
			
			def push(self,item):
				self.data.append(item) 
				
			def pop(self):
				return self.data.pop()
		
		# 先进先出:队列
		class Queue(obejct):
			def __init__(self):
				self.data = []
			
			def push(self,item):
				self.data.insert(0,item) 
				
			def pop(self):
				return self.data.pop()
	
	3. 是否使用过queue 

	4. scrapy的调度器
		队列:先进先出 -> 广度优先
		栈:后进先出 -> 深度优先
	
	5. 面向对象中的方法有几种?
		# #################### 函数 ####################
		自定义函数
		def func(arg):
			print(arg)
			
		内置函数
		bin
		max()
		sum()
		# #################### 方法 ####################
		class Foo(object):
			
			def __init__(self):
				pass 
				
			def func(self):
				pass 
				
			@classmethod
			def func1(cls):
				pass 
				
			@staticmethod
			def func2():
				pass 
				
			

  

posted @ 2019-02-20 13:18  xuerh  阅读(100)  评论(0编辑  收藏  举报