#细节都在代码段里面讲解

零、绪论:

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()

最新文章

  1. Laravel与Repository Pattern(仓库模式)
  2. dotNet平台模板列中的单选无效的解决方案
  3. iOS Safari 中click点击事件失效的解决办法
  4. svn迁移到git仓库并保留commit历史记录
  5. ZMQ 在linux进程 和分布式之间的通信
  6. VC++ 利用MAPI实现在程序中调用默认的电子邮件程序发送EMAIL(可以添加附件)。
  7. JAVA多线程学习3--线程一些方法
  8. HashMap的两种遍历方式
  9. Centos内核升级的三种方法
  10. js 去掉浏览器右击默认事件
  11. Winform获取应用程序的当前路径的方法集合(转)
  12. 201521123003《Java程序设计》第5周学习总结
  13. TinyOS编程思想和Nesc基础语法
  14. solr云的简单搭建(了解)
  15. 【将门创投】AI 往期技术分享
  16. 【LeetCode-面试算法经典-Java实现】【062-Unique Paths(唯一路径)】
  17. ASP.NET之Jquery入门级别
  18. Xcode变量概览-summary
  19. GeoIP的使用
  20. SaaS成熟度模型分级:

热门文章

  1. c# 隐藏Tab控件的标签
  2. Jquery使容器自适应浏览器窗口
  3. Android学习笔记(八)——显示运行进度对话框
  4. Experience on Namenode backup and restore --- checkpoint
  5. 集群中的session共享存储 实现会话保持
  6. shell脚本之函数的使用
  7. spring-boot 中application.properties的各种配置
  8. Bootstrap学习笔记(5)--实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单
  9. Codeforces461A Appleman and Toastman 贪心
  10. UCOS2系统内核讲述(四)_创建任务