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"> ...
随机推荐
- docker 容器自启动
我们设置了docker自启动后,docker可以管理各种容器了,对于容器我们也可以设置重启的策略. 在容器退出或断电开机后,docker可以通过在容器创建时的--restart参数来指定重启策略: # ...
- laravel路由之分组路由
laravel下的分组路由可以嵌套如下: Route::group(['prefix'=>'admin'],function(){ Route::group(['prefix'=>'dtk ...
- php扩展swoole的安装
这个明星php安装是要装php-pear yum install php-pear 然后通过pear命名安装swoole pecl install swoole 配置php.ini 添加 extens ...
- 最新的Zynq资料整理
1.Zynq修炼秘籍 基于ZYNQ的FPGA基础入门 基于ZYNQ的Soc入门基础 基于ZYNQ的裸机应用开发 基于ZYNQ硬件的LINUX开发 基于ZYNQ的HLS图像算法设计 基于ZYNQ的图像处 ...
- location 将跟目录下某个文件夹指向2级目录
例如: /caffespressos/指向/web01/caffe/ [root@web01 default]# tree web01/ web01/ └── caffe └── index.html ...
- IE10/11 滚动条自动隐藏~
原文: http://www.cnblogs.com/xwgli/p/4463184.html 就是IE10/11滚动条自动隐藏咯~ 原因是bootstrap里面加了一句: @-ms-viewport ...
- sensor dma alloc failed问题
打印信息 [CAPTURE][printCapCapbility:93]:D/ driver:sunxi-vfe [CAPTURE][printCapCapbility:94]:D/ card:sun ...
- Cocos2d-x 3.4 初体验——安装教程
电脑系统window7 32位 1.首先从官网下载cocos2d-x并解压 http://cn.cocos2d-x.org/download/ 解压后的文件夹中有一个setup.py,双击运行.需要安 ...
- matlab保存画框图像去白边
在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...
- hdu3457(有向图的dp问题)
同http://www.cnblogs.com/ziyi--caolu/p/3202511.html #include<iostream> #include<stdio.h> ...