Django学习笔记第二篇--关于请求获取
#细节都在代码段里面讲解
零、绪论:
HTTP协议是一种请求响应的协议,一次请求一次响应。所以这部分的讲解将分为三个部分:请求获取,分析处理、返回响应。
一、获取请求数据:
1、POST和GET类型
#GET/POST
request.GET["para_name"]
request.POST["para_name"]
#都是字典可以使用get方法
#对于方法的选择:
HttpRequest.method==GET#或者POST或者其他
2、其他类,例如PUT和DELETE,其他的也不多了,OPTIONS 不带数据
put = QueryDict(request.body)
key = put.get('key')
field = put.get('field')
field_value = put.get('field-value') #把request.body也就是请求报文体,结构化成QueryDict,看情况,有时候数据体部分也可能是json化的。delete同理
3、文件类型:
#FILES:
fileobject = request.FILES.get("para_name")
filename = fileobject.name
filesize = fileobject.size
filetype = fileobject.content_type
filecontent = fileonject.read
filecharset =fileobject.charset
#上传文件配置限制:
FILE_UPLOAD_MAX_MEMORY_SIZE
#直接读入内存的最大上传文件大小(字节数)。当大于此值时,文件存放到磁盘。默认2.5M字节
FILE_UPLOAD_TEMP_DIR
FILE_UPLOAD_PERMISSIONS#权限
FILE_UPLOAD_HANDLERS
#对于表单上传文件的一个简单处理:
def handle_uploaded_file(f):
destination = open('some/file/name.txt','wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
4、请求头部字段:
head = request.META
#这是一个字典,所有和请求甚至和响应有关的上下文结构都在里面,所以头部字段也在里面
#例如想要取出user-agent
useragent = head["HTTP_USER_AGENT"]
5、session和cookies
#cookie直接获取cookie是一个字典
cookie = request.COOKIES
csrftoken = cookie["csrftoken"]
#session也是一个字典结构:
request.session["admin"]
request.session.get("admin")
#对这些的cookie和session的处理我们将在数据处理部分做介绍
6、user
#AUTH_USER_MODEL 的一个实例对象
#用来表明当前用户,匿名用户时候则为id为None,username为空字符串。
#常见的字段:id username group password
is_active
is_staff
is_superuser
#常见的函数:
is_authenticated()
is_anonymous()
set_password()
check_password()
get_username()
save()
delete()
7、其他请求上下文属性:
HttpRequest.scheme#协议,一般为http或者https
HttpRequest.body#数据部分,可以使用HttpRequest.read()获取
HttpRequest.path(path_info)#关于请求的路径部分信息
HttpRequest.encoding#请求的编码方式
HttpRequest.REQUEST#一个字典,相当于POST和GET的字典合集
8.关于上下文的一些方法:
HttpRequest.get_host()
HttpRequest.get_full_path()
HttpRequest.get_build_absolute_uri()
#HttpRequest.get_signed_cookie()
HttpRequest.is_secure()#是否是HTTPS
HttpRequest.is_ajax()#是否为Ajax请求
HttpRequest.read()
HttpRequest.readline()
HttpRequest.readlines()
HttpRequest.xreadlines()
Django学习笔记第二篇--关于请求获取的更多相关文章
- ASP.NET Core 学习笔记 第二篇 依赖注入
前言 ASP.NET Core 应用在启动过程中会依赖各种组件提供服务,而这些组件会以接口的形式标准化,这些组件这就是我们所说的服务,ASP.NET Core框架建立在一个底层的依赖注入框架之上,它使 ...
- js学习笔记第二篇
Js笔记整理 1.StringAPI a) 大小写转换:str.toUpperCase();str.toLowerCase(); b) 获取指定位置字符: Str[i]-- ...
- Node 之 Express 学习笔记 第二篇 Express 4x 骨架详解
周末,没事就来公司加班继续研究一下Express ,这也许也是单身狗的生活吧. 1.目录结构: bin, 存放启动项目的脚本文件 node_modules, 项目所有依赖的库,以及存放 package ...
- Android学习笔记(第二篇)View中的五大布局
PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念 view是什么呢?我们已经知道一个Act ...
- Asp.net core Identity + identity server + angular 学习笔记 (第二篇)
先纠正一下第一篇的的错误. 在 Login.cshtml 和 Login.cshtml.cs 里, 本来应该是 Register 我却写成 Login . cshtml 修改部分 <form a ...
- R学习笔记 第二篇:矩阵、数组和列表
向量是一维的,只有长度(行),没有其他维度.R中存在更高维度的对象,他们是矩阵,数据框,数组.这些对象的下标都是使用中括号[],第一个维度是row,第二个维度是column,依次类推,[row,col ...
- Django学习笔记第九篇--实战练习五--关于数据的改、删操作、数据库字段属性的设置和类视图
一.首先上代码.关于类视图: class register(View): #template_name = "templates/register.html" def get(se ...
- Django学习笔记第一篇--Hello,Django
一.Django的安装: 1.python虚拟运行的环境的安装以及安装django: sudo pip install virtualenv export VIRTUALENV_DISTRINUTR= ...
- Vue.js学习笔记 第二篇 样式绑定
Class绑定的对象语法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
随机推荐
- HttpOperater-模拟HTTP操作类
using System; using System.IO; using System.Linq; using System.Net; using System.Text; using System. ...
- 字符串函数---itoa()函数具体解释及实现
itoa()函数 itoa():char *itoa( int value, char *string,int radix); 原型说明: value:欲转换的数据. string:目标字符串的地址. ...
- atitit.解决SyntaxError: missing ] after element list"不个object 挡成个str eval ....
atitit.解决SyntaxError: missing ] after element list"不个object 挡成个str eval .... 1. 原因::: 不个object ...
- gzexe加密 脚本
sh-4.1# vi GZEXE.sh sh-4.1# cat GZEXE.sh #!/bin/bash echo "gzexe加密实验!!!" >> Cgzexe.l ...
- Vmware linux 无法上网
流程如下: 1)点击 VM->Settings Hardware选项卡下面 2)点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 3.进入Windo ...
- 【C语言】19-static和extern关键字1-对函数的作用
一.extern与函数 在前面我提到过一句话:如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.o ...
- 深入浅出MFC--第一章
Windows程序的生与死 当使用者按下系统菜单中的Close命令项,系统送出WM_CLOSE.通常程序的窗口函数不拦截次消息,于是DefWindowProc函数处理它.DefWindowProc收到 ...
- C++const关键字用法
const关键字是C++新引进的关键字,目标是用于定义常量,避免C语言中使用宏定义出现的边际问题,并且const是类型安全的,即const定义的是不可修改值的变量,它是有类型的,但是宏替换只是简单的进 ...
- SpringMVC之学习(1)
先来一个springmvc的基本配置,照样输出hello world 1.先导入springmvc所需要的开发包 最起码需要这么多的基本包,然后开始上配置 2.先在web.xml里进行引入,和Stru ...
- 数论 + 扩展欧几里得 - SGU 106. The equation
The equation Problem's Link Mean: 给你7个数,a,b,c,x1,x2,y1,y2.求满足a*x+b*y=-c的解x满足x1<=x<=x2,y满足y1< ...