对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获取android设备的GPS信息脚本分享
Mar 06 Python
Python运算符重载用法实例分析
Jun 01 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
利用python模拟sql语句对员工表格进行增删改查
Jul 05 Python
基于python OpenCV实现动态人脸检测
May 25 Python
python看某个模块的版本方法
Oct 16 Python
python字符串Intern机制详解
Jul 01 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Python使用Pandas库常见操作详解
Jan 16 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
Python 里最强的地图绘制神器
Mar 01 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
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
require.js的用法详解
2015/10/20 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
浅谈原型对象的常用开发模式
2017/07/22 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python manage.py runserver流程解析
2019/11/08 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
keras 多任务多loss实例
2020/06/22 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
游戏商店:Eneba
2020/04/25 全球购物
个人求职信范例
2014/01/29 职场文书
报告会主持词
2014/04/02 职场文书
2014年清明节网上祭英烈寄语
2014/04/09 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
业务员辞职信范文
2015/03/02 职场文书
企业员工辞职信范文
2015/05/12 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python