Django HttpResponse笔记
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笔记的更多相关文章
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- Django学习笔记---第一天
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
- Django学习笔记(二):使用Template让HTML、CSS参与网页建立
Django学习笔记(二):使用Template让HTML.CSS参与网页建立 通过本文章实现: 了解Django中Template的使用 让HTML.CSS等参与网页建立 利用静态文件应用网页样式 ...
- Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...
- Django学习笔记(一)——安装,创建项目,配置
疯狂的暑假学习之 Django学习笔记(一) 教材 书<The Django Book> 视频:csvt Django视频 1.创建项目 django‐admin.py startpro ...
- Django学习笔记(18)——BBS+Blog项目开发(2)主体思路及流程
这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写 ...
随机推荐
- Cisco2960 交换机密码破解方法
1. 启用超级终端并出现连接界面2. 拔掉交换机的电源3. 按下交换机上的 Mode按钮, 与此同时重新插上交换机的电源线4. 当交换机左边的sys 灯会慢慢的闪动, ( 细心的话会发现部分灯红色的闪 ...
- Dangerous query method called with non-attribute argument(s)
踩坑 query method. 问题描述 现有model issue,需要对issues进行排序,根据指定的ID集合来决定记录的位置,比如id包含在(4, 6, 9)中的纪录就排在前面,剩下的排在后 ...
- React Native Build Apk
1 React Native安卓项目打包APK 1.1 产生签名的key 先通过keytool生成key 1 keytool -genkey -v -keystore demo-release-key ...
- 直播内容大面积偏轨:都是high点的错?
当下的直播行业看似火爆,却是外强中干.直播平台数量的暴增.主播人数的飙升.直播内容同质化严重等问题,都在成为新的行业症结.而面对复杂的情况,不仅刚入行的小主播,就连爆红的大主播都感到寒冬的难熬.为了能 ...
- C++银行储蓄程序代码
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- XML转换
找到两个不错的c#的关于XML转string和将string格式化XML输出 感谢以下两位的分享: [string格式化XML输出]http://blog.csdn.net/a497785609/ar ...
- this软拷贝详解
<script> if( !Function.prototype.softBind ){ Function.prototype.softBind = function( obj ){ va ...
- 什么是Activiti
什么是Activiti Activiti属于工作流引擎的一个开源实现.Activiti由Tom Bayen发起.在2010年5月发布了第一个版本.命名也很有意思的采取了Activities(活动)的化 ...
- spring——AOP原理及源码(三)
在上一篇中,我们创建并在BeanFactory中注册了AnnotationAwareAspectJAutoProxyCreator组件.本篇我们将要探究,这个组件是在哪里以及何时发挥作用的. 调试的起 ...
- 微信小程序学习 动手撸一个校园网小程序
动手撸一个校园网微信小程序 高考完毕,想必广大学子和家长们都在忙着查询各所高校的信息,刚好上手微信小程序,当练手也当为自己的学校做点宣传,便当即撸了一个校园网微信小程序. 效果预览 源码地址:Gith ...