Django进阶之视图HttpResponse 对象

本篇文章主要内容为:视图中HttpResponse对象的属性、方法及json、redirect子类包含使用cookie使用、跳转、json返回的示例。

概述

HttpResponse对象是对用户访问的响应,与HttpRequest对象由django创建,HttpResponse对象是由开发人员创建。HttpResponse对象属于django.http模块,可以通过向构造函数传递网页内容的方式来构造HttpResponse实例,在实例化的同时可以指定浏览器对文本的处理方式。

用法

属性

Content 表示返回内容的类型

Charset 编码格式

Status_code 响应状态码:200、304、404、500

Content-type 指定输出的mime类型

方法

init 使用页面内容实例化HttpResponse对象

write(content) 以文件的形式写入

flush() 以文件的形式输出

set_cookie(key, val=’’, max_age=None, expire=None)

设置cookie

delete_cookie(key)

删除cookie;注意:如果删除一个不存在的key,什么都没有发生

cookie使用

路由

path('testCookie', views.test_cookie, name='testCookie'),

存cookie

def test_cookie(request):
    """ cookie测试 """

    res = HttpResponse('测试cookie')
    res.set_cookie('name', 'this is cookie')

效果

通过 检查->查看网络 当前链接的响应头,可看到增加了一个cookie。

取cookie

def test_cookie(request):
    """ cookie测试 """

    res = HttpResponse('测试cookie')

    #res.set_cookie('name', 'this is cookie')

    cookies = request.COOKIES

    res.write("<h1>" + cookies['name'] + "</h1>")

效果

删除cookie

def test_cookie(request):
    """ cookie测试 """

    res = HttpResponse('测试cookie')

    # res.set_cookie('name', 'this is cookie')
    # cookies = request.COOKIES
    # res.write("<h1>" + cookies['name'] + "</h1>")

    res = HttpResponse('删除cookie')
    res.delete_cookie('name')

    return res

子类HttpResponseRedirect

功能:重定向,服务器端跳转

重定向路由

# 重定向路由

path('redirect1', views.redirect1, name='redirect1'),
path('redirect2', views.redirect2, name='redirect2'),

重定向视图

from django.http import HttpResponseRedirect


def redirect1(request):
    return HttpResponseRedirect('/myapp/redirect2')

def redirect2(request):
    return HttpResponse('重定向后的视图')

简写redirect(to)

to推荐使用反向解析

from django.http import HttpResponseRedirect
from django.shortcuts import redirect
def redirect1(request):

    # return HttpResponseRedirect('/myapp/redirect2')
    return redirect('redirect2')


def redirect2(request):
    return HttpResponse('重定向后的视图')

子类JsonResponse

返回json数据,一般用于异步请求

__init__(self, data)

Data 字典对象

注意:content-type类型为application/json

引入

from django.http import JsonResponse

使用

def redirect3(request):
    if request.is_ajax():
        info = JsonResponse({'name': '张三', 'gender': '男', 'age': '40', 'hobby': '法律'})
        return info
    else:
        return HttpResponse('不是json请求')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值