对django views中 request, response的常用操作详解


Posted in Python onJuly 17, 2019

request

获取post请求中的json数据

def hello(request):
 data = json.loads(request.body)
 ...

json格式还有一些 非表单序列化 的格式,都可以从 request.body 中获取请求体中的数据,对于ajax请求可以使用 request.is_ajax() 来判断

根据请求的信息获取base url(有时候服务的域名比较多,还是需要动态的拼接一下url信息)

# url http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz
request.get_host() # wificdn.com:8888
request.get_full_path() # u'/wxpay/qrcode2/16122010404238801544?name=lzz'

request.build_absolute_uri('/') # 'http://wificdn.com:8888/'
request.build_absolute_uri('/hello') # 'http://wificdn.com:8888/hello'
request.build_absolute_uri() # 'http://wificdn.com:8888/wxpay/qrcode2/16122010404238801544?name=lzz'

request.path # u'/wxpay/qrcode2/16122010404238801544'
request.scheme # 'http'

获取表单中选中的 checkbox 信息, 例如checkbox的name为 checks

var_list = request.POST.getlist('checks')

返回的是个list对象,如果没有��️返回 [] ,如果表单中没有这个key也返回 []

response

json格式的响应 1.8版本中已经提供了 JsonResponse, from django.http import JsonResponse 就可以使用了,低版本的django可以参照源码自己写一个,几行代码就行了。 response 中设置 cookies 和 header

def xxxxview(request):
 ....

 resp = HttpResponseRedirect('/account/portal/?token=%s' % es)
 resp.set_cookie("coofilter", es, max_age=300)
 resp['Erya-Net-Type'] = NET_TYPE
 resp['Erya-Auth-Host'] = AUTH_HOST
 resp['Erya-Auth-Port'] = AUTH_PORT
 resp['Erya-Auth-Uip'] = ip
 resp['Erya-Auth-Token'] = es
 return resp

session

how to use session, 主要是get和set,和删除

def post_comment(request, new_comment):
 if request.session.get('has_commented', False):
 return HttpResponse("You've already commented.")
 c = comments.Comment(comment=new_comment)
 c.save()
 request.session['has_commented'] = True
 return HttpResponse('Thanks for your comment!')

def logout(request):
 try:
 del request.session['member_id']
 except KeyError:
 pass
 return HttpResponse("You're logged out.")

cookies

def login(request):
 response = HttpResponseRedirect('/url/to_your_home_page')
 response.set_cookie('cookie_name1', 'cookie_name1_value')
 response.set_cookie('cookie_name2', 'cookie_name2_value')
 return response

def logout(request):
 response = HttpResponseRedirect('/url/to_your_login')
 response.delete_cookie('cookie_name1')
 response.delete_cookie('cookie_name2')
 return response

# 获取
coo = request.COOKIES.get('coofilter')
# cookies 过期时间
hr.set_cookie('user_id', user_id, max_age=300)

以上这篇对django views中 request, response的常用操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
基于Python List的赋值方法
Jun 23 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
Python创建字典的八种方式
Feb 27 Python
Django框架视图函数设计示例
Jul 29 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 #Python
python递归法解决棋盘分割问题
Jul 17 #Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 #Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 #Python
python递归法实现简易连连看小游戏
Mar 25 #Python
django2笔记之路由path语法的实现
Jul 17 #Python
Django之创建引擎索引报错及解决详解
Jul 17 #Python
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
php 禁止页面缓存输出
2009/01/07 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
php自动加载机制的深入分析
2013/06/08 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python实现的几个常用排序算法实例
2014/06/16 Python
python登录豆瓣并发帖的方法
2015/07/08 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
Python文件读写常见用法总结
2019/02/22 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
对Django外键关系的描述
2019/07/26 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
Python实现手绘图效果实例分享
2020/07/22 Python
Internet体系结构
2014/12/21 面试题
幼儿园教师请假制度
2014/01/16 职场文书
高中军训感言600字
2014/03/11 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python