HttpResponse

概述:给浏览器返回数据

HttpRequest对象是由django创建的,HttpResponse对象由程序员创建

用法

1:不调用模板,直接返回数据。

例:

def getxob(request):
return HttpResponse('xob')

2:调用模板

使用render方法

原型

render(request,templateName[,context])

作用

结合数据和模板,返回一个完整的HTML页面

参数

request 请求体对象

templateName 模板对象

context 传递给需要渲染在模板上的数据

示例

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类型

例:

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,就什么都没发生

例:

def cookiestext(request):
res=HttpResponse()
cookie=request.COOKIES
res.write("<h1>"+cookie["xob"]+"</h1>")#写出cookie
#cookie=res.set_cookie("xob","handsome")#先存cookie
return res

子类HttpResponseRedirect

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

简写:redirect(to)推荐反向解析

例:

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的值存在数据库里

综合 网页的登录与登出

需求:访问网页登录之后,再次访问网页就会记录登录状态。

#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")

简单的登录

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="/showmain/" method="post">
<input type="text" name="username">
<input type="submit"value="登录">
</form>
</body>
</html>

主界面

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的</title>
</head>
<body>
<h1>欢迎:{{name}}</h1>
<a href="/login">登录</a>
<a href="/quit">退出登录</a>
</body>
</html>

设置过期时间

set_expiry(value)

Value:

如果不设置,默认两个星期后过期。

类型是整数 例:10 10秒后过期

时间对象

0(浏览器关闭后失效)

None永不过期

Django HttpResponse笔记的更多相关文章

  1. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  2. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  3. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

  4. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

  5. Django学习笔记(一):环境安装与简单实例

    Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...

  6. Django学习笔记(二):使用Template让HTML、CSS参与网页建立

    Django学习笔记(二):使用Template让HTML.CSS参与网页建立 通过本文章实现: 了解Django中Template的使用 让HTML.CSS等参与网页建立 利用静态文件应用网页样式 ...

  7. Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API

    用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...

  8. Django学习笔记(一)——安装,创建项目,配置

    疯狂的暑假学习之 Django学习笔记(一) 教材  书<The Django Book> 视频:csvt Django视频 1.创建项目 django‐admin.py startpro ...

  9. Django学习笔记(18)——BBS+Blog项目开发(2)主体思路及流程

    这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写 ...

随机推荐

  1. [JS奇怪的世界]No.55 危險小叮嚀:陣列與for in

    前言 前面已經瞭解了使用內建函數建構子的某些危險地方,但其實陣列與for in,也是有一些危險的地方. 陣列與for in 在前面幾個章節有講過陣列就是物件,所以我們一樣可以使用 for in來做處理 ...

  2. 先治再扶,重灾区后的P2P你还敢投吗?

    ​ 互联网强大的包容性和创新性,给予很多新生事物成长的空间.而其全面普及与快速传播的特性,也让任何事物都像被放在放大镜乃至显微镜下,几乎无形遁形.这样一来,新生事物很容易被"神化" ...

  3. 初识SpringIOC

    初识SpringIOC 简介 IOC(Inversion of Control)控制反转.指的是获取对象方式由原来主动获取,到被动接收的转变.在Spring中,IOC就是工厂模式解耦,是Srping框 ...

  4. Unity中使用C#的null条件运算符?.的注意事项

    Introduction: 在C#6及以上版本中,加入了一项特别好用的运算符:Null条件运算符?.和?[]可以用来方便的执行判空操作,当运算符左侧操作数不为null时才会进行访问操作,否则直接返回n ...

  5. Ubuntu 18.04 国内的 apt 源

    一.Ubuntu 18.04 国内的 apt 源 1. 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted univers ...

  6. spring——AOP原理及源码(五)

    前情回顾: 在上一篇中,通过 wrapIfNecessary 方法,我们获取到了合适的增强器(日志方法)与业务类进行包装,最终返回了我们业务类的代理对象. 本篇我们将从业务方法的执行开始,看看增强器( ...

  7. startUML5.0中的tools下怎么没有java、c等选项

    这也是帮一个直系学妹弄得,哈哈~~~ 具体做法如下: 进入到StartUML\modules目录下,里面有很多文件夹,比如startuml-cpp.startuml-csharp等等, 进入到每个文件 ...

  8. "长辈牌"电子产品:有一种评论朋友圈叫给你打电话

    一.长辈们使用电子产品的姿势集合 先问你一个问题:「怎么下载搜狗输入法?」 (非广告) 摁?看到这篇文章的你可能都有点懵,不就下载安装就完了吗?但是,真的就只是这样吗? 前一段时间,当家里的长辈问到我 ...

  9. js中所有函数的参数(按值和按引用)都是按值传递的,怎么理解?

    我觉着我可能对这块有点误解,所以单独开个博说下自己的理解,当然是研究后的正解了. 1,参数传递是基本类型,看个例子: function addTen(num){ num += 10; return n ...

  10. koa进阶史(一)

    1,设置静态文件目录,将__dirname 写成_dirname,乍看没什么毛病,但是一运行之后发现,_dirname is not defined,下次注意哈 app.use(express.sta ...