亲宝软件园·资讯

展开

Django HttpResponse笔记

rmxob 人气:1
#HttpResponse ### 概述:给浏览器返回数据 HttpRequest对象是由django创建的,HttpResponse对象由程序员创建 ##用法 ### 1:不调用模板,直接返回数据。 例: ```python def getxob(request): return HttpResponse('xob') ``` ### 2:调用模板 使用render方法 ###原型 render(request,templateName[,context]) ###作用 结合数据和模板,返回一个完整的HTML页面 ###参数 request 请求体对象 templateName 模板对象 context 传递给需要渲染在模板上的数据 ###示例 ```python def showregist(requset): return render(requset,'app1/regist.html') def Grades(request): gradelist=grades.objects.all() return render(request,'app1/index.html',{"grades":gradelist}) ``` ##属性 ### content:表示返回的内容的类型 ### charset:编码格式 ### status_code:响应得状态码 200;304;404 ### content-type:指定输出的MIME类型 例: ```python def showresponse(request): res=HttpResponse() print(res.charset) print(res.content) print(res.status_code) print(res.content_type) return HttpResponse("张银昭") ``` 结果: utf-8 b'' 200 ##方法 ### init 使用内容实例化HttpResponse ### write(content) 以文件的形式写入 ### flush() 以文件的形式输出缓冲区 ### set_cookie(key,value) max_age=None,exprise=None ### delete_cookie(key) 删除cookie 注意:如果删除了不存在的cookie,就什么都没发生 例: ```python def cookiestext(request): res=HttpResponse() cookie=request.COOKIES res.write("

"+cookie["xob"]+"

")#写出cookie #cookie=res.set_cookie("xob","handsome")#先存cookie return res ``` ##子类HttpResponseRedirect 功能:重定向,服务器端的跳转 简写:redirect(to)推荐反向解析 例: ```python from django.http import HttpResponseRedirect from django.shortcuts import redirect def redirect1(request): #return HttpResponseRedirect('/redirect2')#重定向到redirect2页面 return redirect('/redirect2')#上下结果一样,下面是简写 def redirect2(request): return HttpResponse("重定向") ``` ##子类JsonResponse 返回Json数据,一般用于异步请求 __init__(self,data) data 字典对象 注意:Content-type 类型为applaction/json #状态保持 ##概述:Http协议是无状态的,每一次请求都是新的请求,不记得以前的请求 客户端与服务器的一次通信就是一次会话 实现状态保持,在客户端或者在服务端存储会话的数据 ##存储的方式 cookie 所有的数据的存在客户端,不要存敏感的数据(不推荐) session 所有的数据的存在服务端,在客户端用cookie存储session_id 状态保持的目的:在一段时间内跟踪请求者qi的状态,可以跨页面访问请求者的数据 注意:不同的请求者之间不会共享这个数据,与请求者一一对应 ##启用session settings INSTALLED_APPS = [ 'django.contrib.sessions', 默认起用session MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', ##使用session 启用session每个HttpRequest对象都有一个session数据,就是一个类似字典的对象 get(key,default=None):根据键获取session值 clear():清空所有的会话 flush():删除当前的会话,并删除会话的cookie session的key存在cookie里,key的值存在数据库里 #综合 网页的登录与登出 需求:访问网页登录之后,再次访问网页就会记录登录状态。 ```python #views def main(request): #取session username= request.session.get("username","游客") return render(request,'app1/main.html',{"name":username}) def login(request): return render(request,'app1/login.html') def showmain(request): username=request.POST.get('username') #存储session request.session['username']=username print(request.session['username']) return redirect('/main') from django.contrib.auth import logout def quit(request): #清除session # logout(request) # request.session.clear() request.session.flush()#三种方法 return redirect("/main") ``` 简单的登录 ```html 登录 ``` 主界面 ```html 我的

欢迎:{{name}}

登录 退出登录 ```

加载全部内容

相关教程
猜你喜欢
用户评论