django-视图函数-request
-
视图函数必须提供至少一个参数、且类型是 request 对象
-
视图函数的其他参数 取决于是否使用了 参数路由、正则参数路由、或者 定义路由的额外参数
-
request : 从浏览器 到 服务器
request 常见的属性
-
request.path : 获取请求的地址(路由)
-
request.method : 获取请求的方式,常见的方式是 GET, POST
-
request.GET : 获取GET请求的参数
-
request.POST : 获取 POST 请求的参数
-
request.FILES : 获取浏览器上传的文件对象
-
request.headers : 获取请求的头信息
-
request.user : 获取当前登录的用户对象
-
request.COOKIES : 获取浏览器对应的Cookie
-
request.session : 获取session会话对象
-
request.content_type : 获取请求的内容类型
-
request.encoding : 获取请求的编码格式
-
request.scheme : 获取请求的协议
request 常见的方法
- request.is_ajax() : 判断是否是异步请求
request.GET, request.POST
- 返回一个 QueryDict 对象
request.GET
- 用来接收 GET 请求提交的数据
GET传入参数的方式, 是通过 在地址后面以 ? 分割、多个参数用 & 分割,每一个参数使用 key=val的结构进行传递
例如
http://www.baidu.com/s?key=a&kw=b&ie=utf-8
http://www.baidu.com/s?key=a&kw&ie=utf-8
request.POST
- 使用表单
- 使用异步请求
QueryDict 常见的方法
- get(key, default=None) : 通过key 获取 val , val是一个字符串
- getlist(key) : 通过key 获取 val , val是一个列表
- dict() : 将 QueryDict 转成 字典、字典中的所有的 val 均为字符串
request.FILES
- 接收上传的文件对象
- 返回 MultiValueDict对象
MultiValueDict 常见的方法 get , getlist, dict
photo = request.FILES.get(“photo”) 返回一个 InMemoryUploadedFile 对象
InMemoryUploadedFile 常见的属性和方法
-
name : 获取上传的文件名
-
size : 获取上传的文件大小
-
content_type : 获取上传文件的类型
-
read() : 一次性的将文件读入到内存,适合于 小文件的读取
-
chunks() : 以块的形式将文件读入到内存,适合于 大文件的读取
for chunk in photo.chunks():
with open("a.jpg", "wb") as f:
f.write(chunk)