request.POST.getlist('multi_select') # 获取一个多选的select的数值
request.method == "GET" | "POST"
json.loads(request.read().encode(request.encoding))
file = request.FILES['file'] # 获取文件, 里面的file是你在form里面设置的name
name: 文件名 - portriat.png
read(): 读取文件的二进制数据(内存占用很大)
chunks(): 一个迭代器
size: 文件字节数
-
参数
path
:/reqres/request/
GET
: 返回GET的参数, ImmutableDictbody
: 返回二进制内容POST
: 类似GET, 用于POST的方法FILES
: 获取文件 request.FILES.getlist("images") 获取上传的图表列表django.core.files.uploadedfile.InMemoryUploadedFile
django.core.files.uploadedfile.InMemoryUploadedFile
:- name: 返回文件名
- read(): 返回二进制内容
-
方法
get_full_path
:/reqres/request/?key=bar
-
cookie:
request.COOKIES
-
其他
request.META['REMOTE_ADDR']
# 获取IP地址
django.http.request.QueryDict, 是一个MultiValueDict
query = QueryDict('a=1&a=2&b=3')
query['a'] == '2'
query.getlist('a') == ['1', '2']
query.getlist('c') == []
- copy: 用来把request.POST的数据copy, 这样才能修改
- get/getitem: 返回最后一个的值
- getlist(key, default=None) 必定返回list或者default的值
- content
- charset
- status_code
from django.http import JsonResponse
response = JsonResponse({"foo": "bar"})
返回文件 FileResponse
import io
return FileResponse(
io.BytesIO(b'123'),
headers={
"Content-Disposition": 'attachment;filename="下载.csv"'.encode("utf8"),
}
)
from django.http import FileResponse
response = FileResponse(open('filename', 'rb'))
response['Content-Disposition'] = 'attachment;filename="result.xlsx"' # 告诉浏览器文件的文件名
response['Content-Length'] = tmp_file.tell() # 告诉浏览器文件的大小
return response
from django.http import HttpResponse
from import csv
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"'
write = csv.write(response)
write.writerow(['Firstrow', 'Foo', 'Bar', 'Baz'])
write.writerow(['Second row', 'A', 'B', 'C', '"Testing"'])
a = HttpResponse('ok')
a.set_cookie('foo', value='bar')
return a
from django.http import HttpResponseRedirect
return HttpResponseRedirect('http://www.ramwin.com')
from django.views.generic.base import Redirectiew
path(".*$", Redirectiew.as_view(url="/home"), namespace="other")