Django Response对象3.4(django官方文档)

网友投稿 242 2022-09-05


Django Response对象3.4(django官方文档)

HttpResponse对象

在django.django.import HttpResponsedef index(request): return HttpResponse('你好')

调用模板

from django.import HttpResponsefrom 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.import HttpResponsefrom datetime import *def index(request): response = HttpResponse() if request.COOKIES.has_key('h1'): response.write('

' + request.COOKIES['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.import HttpResponse,HttpResponseRedirectdef 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.import JsonResponsedef index2(requeset): return JsonResponse({'list': 'abc'})

简写函数

render

render(request, template_name[, context])结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的HttpResponse对象request:该request用于生成responsetemplate_name:要使用的模板的完整名称context:添加到模板上下文的一个字典,视图将在渲染模板之前调用它

from django.shortcuts import renderdef index(request): return render(request, 'booktest/index.html', {'h1': 'hello'})

重定向

redirect(to)为传递进来的参数返回HttpResponseRedirectto推荐使用反向解析

from django.shortcuts import redirectfrom 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 = None return 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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django 模板4.1(django官方文档)
下一篇:Django 视图URLconf3.1(django框架主要用来做什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~