一 . 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 |
|
7, 条件
一般情况我们需要筛选才能得到我们想要的数据,那么就要在url中添加相应的条件。
8. 返回值
|
9. 返回错误信息
1 2 3 4 |
|
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