Django请求响应对象
请求与响应对象
HttpRequest
HttpRequest存储了客户请求的相关参数和一些查询方法。
- path
请求页面的全路径,不包括域名—例如, "/hello/"。
- method
Http请求方法,包括'GET','POST'。
- GET
QueryDict类实例,包含所有HTTP GET参数的字典对象。
- POST
QueryDict类实例,包含所有HTTP POST参数的字典对象。
- REQUEST
为了方便,该属性是POST和GET属性的集合。
- COOKIES
包含所有Cookies的标准Python字典对象,Keys和Values都是字符串。
HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
返回签名过的Cookie 对应的值,如果签名不再合法则返回django.core.signing.BadSignature。如果提供default 参数,将不会引发异常并返回default 的值。
可选参数salt可以用来对安全密钥强力攻击提供额外的保护。
max_age参数用于检查Cookie 对应的时间戳以确保Cookie 的时间不会超过max_age秒。
HttpRequest.session.set_test_cookie() 设置测试cookie,检验客户端是否支持cookie
HttpRequest.session.test_cookie_worked() 检测测试cookie,客户端支持时返回True。
在set_test_cookie的同一次请求-响应中test_cookie_worked的结果是不可靠的。
- FILES
包含所有上传文件的类字典对象。
FILES中的每个Key都是<input type="file" name="" />标签中name属性的值,FILES中的每个value 同时也是一个标准Python字典对象,包含3个Key:
"filename"
"content-type"
"content"
- META
包含所有可用HTTP头信息的字典,其中的Key包括:
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_HOST: 客户发送的HTTP主机头信息
HTTP_REFERER: referring页
HTTP_USER_AGENT: 客户端的user-agent字符串
HTTP_X_BENDER: X-Bender头信息
- session
可读写的session对象
- raw_post_data
原始的POST数据
- 其它
HttpRequest.is_secure()请求是否由Https协议发起
HttpRequest.is_ajax() 请求是否由Ajax协议发起
QueryDict
HttpRequest中的GET和POST属性都是django.http.QueryDict类的实例,它是dict派生类。提供了对一键多值的支持和相关操作方法。
HttpResponse
- content
HttpResponsee.content是存储响应内容的字符串,
- item
HttpResponse.__setitem__(header, value) 设置响应头属性
HttpResponse.__delitem__(header) 删除响应头属性
HttpResponse.__getitem__(header) 访问响应头属性
HttpResponse.has_header(header) 检查是否存在响应头属性
- cookie
HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False) 设置cookie
HttpResponse.delete_cookie(key, path='/', domain=None) 删除cookie
HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True) 使用带有密钥签名的数据
JsonResponse
JsonResponse是HttpResponse的子类,用于生成一个Json格式而非html/xml的响应。
JsonResponse.__init__(data, encoder=DjangoJSONEncoder, safe=True, **kwargs)
在safe参数为True时,只接受dict对象作为参数,并将Dict作为Json字符串;在safe=False时使用ncoder=django.core.serializers.json.DjangoJSONEncoder参数指定的encoder。
from django.http import JsonResponse
def test_json(request):
response = JsonResponse({'foo': 'bar'})
return response
TemplateResponse
Django请求响应对象的更多相关文章
- Django请求,响应,ajax以及CSRF问题
二.request对象常用属性: Attribute Description path 请求页面的全路径,不包括域名端口参数.例如: /users/index method 一个全大写的字符串,表示请 ...
- DRF对Django请求响应做了技术升级
Django视图是用来处理请求和响应的,Django默认是按Form和Template来设计的,如果要处理以JSON格式为主的RESTful API,那么就需要对Django请求和响应的处理代码进行优 ...
- request和response——请求响应对象
请求对象--request 获取get请求的值 一次请求,返回一个响应. 地址栏:http://127.0.0.1:8000/day3/get_request?lan=python 问号:代表请求参数 ...
- django返回响应对象
Django的视图必须要返回一个HttpResponse对象(或者其子类对象),不能像flask一样直接返回字符串. Django: return HttpResponse("Hello&q ...
- django之三剑客、静态文件配置、请求响应对象、数据库操作
三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...
- 关于Tomcat中封装请求-响应的结构的分析
在编写Servlet时,往往只重写了doGet和doPost方法,使用Tomcat通过(HttpServletRequest 和 HttpServletResponse)接口传递来的request和r ...
- 基于请求响应的MVC框架调用分析
一.使用Servlet来处理请求响应 当client提交数据之后.接着发送请求,请求被封装成对象,server接收到请求,依据请求的URL.来推断将请求对象交由哪个Servlet处理. 在servle ...
- django 获取request请求对象及response响应对象中的各种属性值
django request对象和HttpResponse对象 HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外) HttpRequest.scheme 请求方案 ...
- Django视图函数之request请求与response响应对象
官方文档: https://docs.djangoproject.com/en/1.11/ref/request-response/ 视图中的request请求对象: 当请求页面时,Django创建一 ...
随机推荐
- AbpZero兼容sql2008
笔者遇到的问题是公司服务器用的MSSQL的版本是2008,但AbpZero一些封装好的ORM语法只兼容到2012版本: 例如我遇到的问题就是AbpZero的分页就报这个错 然后我们要修改的是Entit ...
- NetCore入门篇:(六)Net Core项目使用Controller之一
一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择完全抛弃传统mvc模式,使用html + webapi模 ...
- 构建NetCore应用框架之实战篇(四):BitAdminCore框架1.0登录功能细化及技术选型
本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性. 构建NetCore应用框架之实战篇系列 一.BitAdminCore框架1.0版本 1.1.0版本是指最小版本 ...
- F#语言入门之什么是F#语言
F#是一种函数式编程语言,可以轻松编写正确且可维护的代码. F#编程主要涉及定义类型推断和自动泛化的类型和函数. 这使您可以将焦点保留在问题域上并操纵其数据,而不是编程的细节. open System ...
- 面试题-选择题Python
一. 6.下列表达式中返回为True的是() A.3>2>2 false B.'abc'>'xyz' false C.0x56<56 86<56 false 0x ...
- jzoj3363
JYY 来到了一个新的城市,为了和大家保持联系,第一件事就是办理新的手机号.JYY 对号码的要求很高,希望大家都能够顺畅地阅读手机号,因此 JYY 特别研究了地球人的电话号码阅读习惯,有如下重大发现 ...
- UUID,加密解密算法的使用
注意的地方: Base64Encoder,Base64Decoder并不属于JDK标准库范畴,但是又包含在了JDK中 解决方法:按照如下方法设置Eclipse导入%JAVA_HOME%\jre\lib ...
- Ultra-QuickSort (POJ 2299)树状数组+离散化
题目链接 Description In this problem, you have to analyze a particular sorting algorithm. The algorithm ...
- 编写 ES6 的 7 个实用技巧
无脑翻译走一波~ Hack #1 - 变量交换 使用数组解构交换变量的值 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // ...
- jvm特性(3)( 收集算法和收集器的概念)
java内存模型和线程规范 JVM高级特性与实践(三):垃圾收集算法 与 垃圾收集器实现 大致知识点如下: 4种垃圾收集算法概念的学习 7种垃圾收集器特征的学习 一. 垃圾收集算法 1. 标记-清除算 ...