1. Request:

request.mothed 请求方式 如:POST,GET
request.POST.get() 获取POST的请求信息
request.POST.getlist() 获取多个POST的请求信息
request.GET.get() 获取GET的请求参数

request.body 获取请求体的信息,bytes类型显示,get方式没有请求体,post方式有请求体
request.scheme 获取http/https
request.get_host() 获取ip地址和端口
request.path_info 获取url路径信息,不包含域名信息
request.get_full_path() 获取除域名外的所有信息
request.FILES.get() 获取上传的文件 

前端上传文件代码

<form action="" method="post" enctype="multipart/form-data"> 上传文件的话,一定要在form表单中定义enctype="multipart/form-data"
    <input type="file" name="my_file">
    <button type="submit">提交</button>
</form>

 

后台获取上传文件的代码

class Upload(View):
    def get(self,request):
        return render(request,'upload.html')

    def post(self,request):
        file_name = request.FILES.get('my_file')    获取文件对象 
        with open(file_name.name,'wb') as f1:    file_name.name是FILES自带的方法,可以直接取到文件名
            for i in file_name.chunks(100): chunks()也是FILES自带的方法,括号内可以指定每次上传的大小,字节格式
                f1.write(i)
        return HttpResponse('上传成功') 

 

2. Response:

HttpResponse  (字符串)
render  (request,'html文件名',模板渲染参数{}字典格式)
redirect  (跳转地址)
JsonResponse  (字典) Django自带json转换功能,如果传一个其他类型的数据则需要写成 JsonResponse(字典,safe=False),如果使用json模块的话

如下:

import json
from django.http import JsonResponse

def json_data(request):

    data_dict = {'name':'alex','age':99}
    return HttpResponse(json.dumps(data_dict)) # Content-Type: text/html; charset=utf-8

    # 通过JsonResponse传json格式数据
    return JsonResponse(data_dict) # Content-Type: application/json

    # 通过HttpResponse传json的方式,并改变Content-Type
    return HttpResponse(json.dumps(data_dict),content_type='application/json') # 直接指定Content类型,Content-Type: application/json

    # 另外一种改变Content-Type方式
    ret = HttpResponse(json.dumps(data_dict))
    ret['Content-Type'] = 'application/json'
    return ret # Content-Type: application/json

    # 通过JsonResponse传除了字典格式的数据类型
    li = [1,2,3,4,5]
    # return JsonResponse(li) # 会报错
    return JsonResponse(li,safe=False) # 正确写法

 

posted on 2019-02-28 14:32  花豆豆  阅读(136)  评论(0编辑  收藏  举报