django 视图 Reques对象

常用值

语法作用
request.method返回请求方法(GET、POST)
request.GET获取该次GET方法 取参数
request.POST获取该次POST方法 取参数
request.path_info只取路径 例:127.0.0.1/index/?a=1&b=2 取结果=/index/不含域名和参数
request.body请求体 收到的整体信息(不咋用)

request-常用方法

语法作用
request.get_full_path()取访问路径加信息(含访问信息)例如:"/music/bands/the_beatles/?print=true"
request.is_ajax()如果请求是通过XMLHttpRequest 发起的,则返回True

上传文件案例

enctype参数:提交数据包内容格式:默认 参数=值&参数=值 文件形式传输:”multipart/form-data”

HTML


<!--上传文件必须带有:enctype="multipart/form-data" 来指定post是传文件-->

<form action="/upload/" method="post" enctype="multipart/form-data">
    <input type="file" name="upload_file">

    <!--可以传多文件,post时会计较以dict字典形式储存的文件对象-->
    <input type="file" name="upload_file2"> 
    <input type="submit" value="开始上传">
</form>

views

class Upload(View):
    """
      保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
      但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
      :param request:
      :return:
    """
    def post(self,request):
        # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
        filename = request.FILES["upload_file"].name  # 字典形式储存
        # 在项目目录下新建一个文件
        with open(filename, "wb") as f:
            # 从上传的文件对象中一点一点读
            for chunk in request.FILES["upload_file"].chunks():  # 固定封装的方法
                # 写入本地文件
                f.write(chunk)
        return HttpResponse("上传OK")

Response 三件套

模块作用
HttpResponse返回字符串内容
render返回一个html页面
redirect返回一个重定向(告诉浏览器再去访问另外的网址)
JsonResponseHttpResponse的子类,专门用来生成JSON编码的响应

JsonResponse实例

from django.http import JsonResponse  # 导入模块

response = JsonResponse({'foo': 'bar'})
print(response.content)

b'{"foo": "bar"}'

非字典类型

# 默认只能传递字典类型,如果要传递非字典类型需要设置一下safe关键字参数。
response = JsonResponse([1, 2, 3], safe=False)

render()

locals() 将当前页面所有变量传入
return render(request, 'index.html', locals())
这里写图片描述
结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。

参数:
request: 用于生成响应的请求对象。

template_name:要使用的模板的完整名称,可选的参数

context:添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。

content_type:生成的文档要使用的MIME类型。默认为 DEFAULT_CONTENT_TYPE 设置的值。默认为’text/html’

status:响应的状态码。默认为200。

useing: 用于加载模板的模板引擎的名称。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值