面向对象
— 封装
—— 对同一类方法封装到类中
—— 将数据封装到对象中
调用类的实例方法不需要加self
eg:action_func = getattr(self, action)
ret = action_func(request, queryset)
跨域,原生Ajax(XMLHttpRequest)(浏览器同源策略限制Ajax请求,不阻止具有src属性值的标签)
—— JSONP:原理是动态创建script一个标签。先定义一个函数(函数名(数据)),然后接收服务端返回数据,直接触发函数
—— CORS:原理是设置响应头(浏览器同源策略)。有简单请求和复杂请求
浏览器 -----------------------------------------------------------》server
“ 请求首行\r\ncontent-type: text/html; charset=utf-8\r\n\r\na=1&b=2 ”
“ 请求首行\r\ncontent-type: applcation/json\r\n\r\n'{"a":1,"b":2}' ”
在django的wsgi的request中:
request.body:元数据'{"a":1,"b":2}'
if 请求头中的content-type: text/html; charset=utf-8:
request.POST = 解码decode(a=1&b=2)
django的request.POST和request.body:
1、请求头要求:
--Content-Type: application/x-www-form-urlencoded
--PS: 如果请求头中的Content-Type: application/x-www-form-urlencoded,request.POST中才有值(去request.body中解析数据)
2、数据格式要求:
--name=aa&age=12&gender=男
一 函数定义
二 函数对象、函数嵌套
三 名称空间与作用域
四 闭包函数、装饰器
五 迭代器、生成器
六 三元表达式、列表推导式、生成器表达式
七 递归、匿名函数、内置函数
网友评论