0
点赞
收藏
分享

微信扫一扫

Django视图的响应方式


4.4.1设置视图的响应方式



不同的响应方式对应不同的响应码


HttpResponse(”你好“,status=200)====status 200,以下所有响应的基类

HttpResponseRedirect(”/“)====状态码 302,重定向

HttpResponsePermanentRedirect(”/“)====状态码 301,永久重定向

HttpResponseBadRequest("400") ====状态码400 访问的页面不存在或者请求错误

HttpResponseNotFound("404") ====状态码404 网页不存在或者url失效

HttpResponseForbidden('403') ====没有访问权限

HttpResponseNotAllowed("405")====不允许使用该请求方式

HttpResponseServerError(”500“)====服务器内部错误

JsonResponse({"name":"joe"})====输出json,状态码200

StreamingHttpResponse()====状态码200,响应内容以流形式输出


                 Django视图的响应方式_状态码


                 Django视图的响应方式_数据格式_02

                 Django视图的响应方式_局部变量_03


render(request,template_name,context,content_type,status,using)

request:请求对象

template_name:模板名字

context:对模板上下文进行复制,默认为一个空dict

content_type:响应内容的数据格式,默认即可

status:状态码

using:模板引擎指定

render读取index.html的运行过程:

1 使用loader.render_to_string方法读取模板内容

2 由于模板文件设有模板上下文,因此模板文件解析网页内容的过程需要you模板引擎using实现

3 解析模板文件的过程中,loader.render_to_string的从参数context给模板语法的变量提供具体数据内容 若模板上下文不存在该参数,则对的网页内容为空

4 调用响应类httpresponse,将content(文件解析结果),content_type (响应内容数据格式)和status以参数的形式传入httpresponse中,从而完成响应过程


local()是Python中的一个内置函数,它可以将函数中的局部变量以字典的形式返回local()虽然极其符合python倡导的简便的特性,但是也有一定的局限性,它会将所有的局部变量都进行返回,但有些变量并不是我们所需要的。比如说在Django的视图函数中,我们可能会定义一些中间变量,这些中间变量是不需要被传递的,但是local()也会将它们装入字典中,所以当你需要返回一个函数中的所有变量时,用Local再好不过,但是当你只需要返回某些局部变量的时候,还是老老实实自己构造字典吧!

                 Django视图的响应方式_状态码_04



                 Django视图的响应方式_状态码_05


举报

相关推荐

0 条评论