HttpResponse对象
HttpResponse对象
- 在django.http模块中定义了HttpResponse对象的API
- HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建
- 不调用模板,直接返回数据
#coding=utf-8 from django.http import HttpResponsedef index(request):return HttpResponse('你好')
- 调用模板
from django.http import HttpResponse from django.template import RequestContext, loaderdef index(request):t1 = loader.get_template('polls/index.html')context = RequestContext(request, {'h1': 'hello'})return HttpResponse(t1.render(context))
属性
- content:表示返回的内容,字符串类型
- charset:表示response采用的编码字符集,字符串类型
- status_code:响应的HTTP响应状态码
- content-type:指定输出的MIME类型
方法
- init :使用页内容实例化HttpResponse对象
- write(content):以文件的方式写
- flush():以文件的方式输出缓存区
- set_cookie(key, value='', max_age=None, expires=None):设置Cookie
- key、value都是字符串类型
- max_age是一个整数,表示在指定秒数后过期
- expires是一个datetime或timedelta对象,会话将在这个指定的日期/时间过期,注意datetime和timedelta值只有在使用PickleSerializer时才可序列化
- max_age与expires二选一
- 如果不指定过期时间,则两个星期后过期
from django.http import HttpResponse from datetime import *def index(request):response = HttpResponse()if request.COOKIES.has_key('h1'):response.write('<h1>' + request.COOKIES['h1'] + '</h1>')response.set_cookie('h1', '你好', 120)# response.set_cookie('h1', '你好', None, datetime(2016, 10, 31))return response
- delete_cookie(key):删除指定的key的Cookie,如果key不存在则什么也不发生
子类HttpResponseRedirect
- 重定向,服务器端跳转
- 构造函数的第一个参数用来指定重定向的地址
在views1.py中 from django.http import HttpResponse,HttpResponseRedirect def index(request):return HttpResponseRedirect('js/') def index2(request,id):return HttpResponse(id)在应用的urls.py中增加一个url对象 url(r'^([0-9]+)/$', views1.index2, name='index2'),
- 请求地址栏如图:
- 请求结果的地址栏如图:
- 推荐使用反向解析
from django.core.urlresolvers import reversedef index(request):return HttpResponseRedirect(reverse('booktest:index2', args=(1,)))
子类JsonResponse
- 返回json数据,一般用于异步请求
- _init _(data)
- 帮助用户创建JSON编码的响应
- 参数data是字典对象
- JsonResponse的默认Content-Type为application/json
from django.http import JsonResponsedef index2(requeset):return JsonResponse({'list': 'abc'})
简写函数
render
- render(request, template_name[, context])
- 结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的HttpResponse对象
- request:该request用于生成response
- template_name:要使用的模板的完整名称
- context:添加到模板上下文的一个字典,视图将在渲染模板之前调用它
from django.shortcuts import renderdef index(request):return render(request, 'booktest/index.html', {'h1': 'hello'})
重定向
- redirect(to)
- 为传递进来的参数返回HttpResponseRedirect
- to推荐使用反向解析
from django.shortcuts import redirect from django.core.urlresolvers import reversedef index(request):return redirect(reverse('booktest:index2'))
得到对象或返回404
- get_object_or_404(klass, args, *kwargs)
- 通过模型管理器或查询集调用get()方法,如果没找到对象,不引发模型的DoesNotExist异常,而是引发Http404异常
- klass:获取对象的模型类、Manager对象或QuerySet对象
- **kwargs:查询的参数,格式应该可以被get()和filter()接受
- 如果找到多个对象将引发MultipleObjectsReturned异常
from django.shortcuts import *def detail(request, id):try:book = get_object_or_404(BookInfo, pk=id)except BookInfo.MultipleObjectsReturned:book = Nonereturn render(request, 'booktest/detail.html', {'book': book})将settings.py中的DEBUG改为False 将请求地址输入2和100查看效果
得到列表或返回404
- get_list_or_404(klass, args, *kwargs)
- klass:获取列表的一个Model、Manager或QuerySet实例
- **kwargs:查寻的参数,格式应该可以被get()和filter()接受
from django.shortcuts import *def index(request):# list = get_list_or_404(BookInfo, pk__lt=1)list = get_list_or_404(BookInfo, pk__lt=6)return render(request, 'booktest/index.html', {'list': list})将settings.py中的DEBUG改为False
HttpResponse对象相关推荐
- Django视图之HttpRequest对象和HttpResponse对象
五.HttpRequest对象 回想一下,利用HTTP协议向服务器传参有几种途径? 提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取: 查询字 ...
- 106:HttpResponse对象讲解
HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数.那么视图函数在处理完相关的逻辑后,也需要返回一个响 ...
- 【django】HttpResponse对象
视图在接收请求并处理后,必须返回HttpResponse对象或⼦对象.HttpRequest对象由Django创建,HttpResponse对象由开发⼈员创建. 一.HttpResponse 可以使⽤ ...
- django请求与响应(HttpRequest对象和HttpResponse对象)
HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpReq ...
- Django从理论到实战(part43)--HttpResponse对象
学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 HttpResponse对象 常用属性 常用方法 HttpResponse对象 Django服务器接收到 ...
- Django框架——HttpResponse对象
目录 1.HttpResponse 2.JsonResponse 3.redirect重定向 4.reverse反解析 1.HttpResponse 可通过HttpResponse构造响应对象: Ht ...
- django jsonresponse_0基础掌握Django框架(29)HttpResponse对象
为了更好的学习效果,请搭配视频教程一起学习: Django零基础到项目实战 - 网易云课堂study.163.com HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会 ...
- python中response对象的属性_关于python:AttributeError:’HTTPResponse’对象没有属性’split’...
我正在尝试从Google财经获取一些信息,但出现此错误 AttributeError: 'HTTPResponse' object has no attribute 'split' 这是我的pytho ...
- python中response对象的方法_django HttpResponse对象 - 刘江的django教程
HttpResponse对象 阅读: 32804 评论:3 HttpResponse类定义在django.http模块中. HttpRequest对象是浏览器发送过来的请求数据的封装,HttpResp ...
最新文章
- 两大顶级AI算法一起开源!Nature、Science齐发Alphafold2相关重磅,双厨狂喜~
- LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法
- 使用java poi解析表格
- repeater用法一步一步详讲,用来绑定和显示数据信息
- 前端学习(1905)vue之电商管理系统电商系统之根据用户id查询对应的信息
- win7蓝屏0x000000f4修复_注意:关于近期多数电脑蓝屏的处理和预防方法
- php乱码调试,NotePad++ 调试PHP代码中文显示乱码
- 智能驾驶系统是怎样看懂交通标志的?3张流程图给你讲明白
- 安卓应用市场分类排名算法一般是怎样的?
- 嵌套高度问题_excel查找技巧:嵌套函数在区间查找中的应用解析
- 为什么会有这么多种程序设计语言?
- Visual Entity 手册(一)简介
- 通过触发绑定切换下拉框的数据
- tcp网络示例客户端端以及代码,演示
- 10 JavaScript函数
- 学习c++ 必知三大特性
- 解读Tilera怪兽级64核处理器(转)
- 文字转语音合成器哪个好?这些文字转语音软件值得收藏
- xquery_使用XQuery查询DB2 XML数据
- MongoDB单机集群搭建