Django2.0——请求与响应(下)

上篇讲完了请求,这篇接着讲下响应,django响应类型大致有以下几种

  • HttpResponse:返回简单的字符串
  • render:渲染模板
  • redirect:重定向
  • JsonResponse:返回json数据
  • HttpResponse子类:如HttpResponseNotFound,它会返回一个404状态的页面。

HttpResponse

使用django.http.HttpResponse来构造响应对象,可利用HttpResponse这个类来进行响应的实例化。

HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)

属性:

  • content:表示返回的内容,是字符串类型。
  • charset:表示response采用的编码字符集,字符串类型。
  • status_code:响应http的状态码。
  • content-type:指定输出的MIME类型。

方法

  • init():实例化HttpResponse对象
  • write(content):以文件方式写
  • flush():以文件方式输出缓存区
  • set_cookie(key,value='',max_age=None,expire=None):设置cookie,其中参数max_age和expire二选一,是用来设定cookie的有效期,max_age类型为int,单位是秒,expire值的是datatime类型或timedelta类型。
  • delete_cookie(key):删除指定key的cookie,若key不存在,则什么都不会发生。

HttpResponse子类

Django提供了一系列HttpResponse的子类,可以快速设置状态码。下面例出一些常用的。

  • HttpResponseRedirect 301
  • HttpResponsePermanentRedirect 302
  • HttpResponseNotModified 304
  • HttpResponseBadRequest 400
  • HttpResponseForbidden 403
  • HttpResponseNotFound 404
  • HttpResponseNotAllowed 405
  • HttpResponseServerError 500

JsonResponse

使用django.http.JsonResponse来构造响应对象,若要返回json数据,可以使用JsonResponse来构造响应对象。此时响应头的content-type为 application/json。

JsonResponse({'key1': 'value1', 'key2': 'value2'})

redirect重定向

from django.shortcuts import redirect,reverse,重定向常配合name及reverse来使用。reverse用于反向解析name。

Cookie

客户端与服务端可以通过cookie来保持登陆的状态, 即刚开始的时候,客户端post请求将登陆信息发给服务端,服务端就发送与之对应的cookie给客户端,客户端将接收到的cookie保存于本地浏览器中,当再次访问这个网站时,客户端发送的数据就会自动携带上这个cookie信息来实现自动登陆,以此来保持登陆状态。

我们可以看看本地浏览器的cookie信息,本人使用的是google,步骤是点击设置中的高级设置、内容设置、cookie、查看所有cookie...

下面就响应写个简易的视图函数。返回一个HttpResponse类型的响应,并设置一个cookie来返回给客户端。

import datetime
def Post(request):
    response = HttpResponse(content="666",status=200)
    response.set_cookie('name','huge',max_age=100)
    return response

配置url:

path('index/post/',views.Post)

输入路由可得到一个666的页面,查看本地cookie,发现如下:

其cookie有效期为服务端给定的100秒。

给用expire试试

import datetime
def Post(request):
    response = HttpResponse(content="666",status=200)
    response.set_cookie('name','liuyifei',expires=datetime.datetime(2018,12,14))
    return response

cookie有效期为给定的2018.12.14号。

下面我们将响应类型改为HttpResponse的子类。

def Post(request):
    response = HttpResponseNotFound(content="888")
    return response

发现返回页面的状态码为404

改用JsonResponse类型:

def Post(request):
    response = JsonResponse({'sge':18,'tel':15215})
    return response

返回的页面如下:

转载于:https://www.cnblogs.com/longwhite/p/10397668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个使用Python编写的Web应用程序框架,它提供了许多强大的工具和功能来帮助开发人员快速构建高效的Web应用程序。 要玩转Django 2.0代码,首先需要安装Django 2.0,并且熟悉其基本的目录结构和文件组织方式。在创建一个新的Django项目时,可以使用命令行工具来生成基本的项目结构,然后在其中创建应用程序并定义模型、视图和模板。 在使用Django 2.0开发Web应用程序时,需要熟悉Django的MTV(模型-模板-视图)架构,这是Django应用程序的核心概念。模型用于定义数据结构和处理数据库操作,视图负责处理用户请求返回响应,模板则用于生成最终的用户界面。 此外,了解如何使用Django 2.0的路由系统来处理URL映射和视图函数的调度也非常重要。可以使用Django的路由配置来定义URL模式,并将它们映射到相应的视图函数上。 另外,了解Django 2.0的表单处理、认证和权限管理功能也是必不可少的。Django提供了丰富的表单组件和验证工具,可以帮助开发人员快速构建复杂的表单。而用户认证和权限管理方面,Django提供了强大的认证和授权系统,可以帮助开发人员轻松实现用户注册、登录和权限控制。 总之,要玩转Django 2.0代码,需要深入了解Django的核心概念和功能,并且通过实际的项目实践来提升自己的编码技巧和经验。希望以上回答能帮助你更好的学习和应用Django 2.0

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值