对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实现批量改文件名称的方法
May 25 Python
python数据结构之链表的实例讲解
Jul 25 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
Python闭包函数定义与用法分析
Jul 20 Python
python中while和for的区别总结
Jun 28 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
python之生成多层json结构的实现
Feb 27 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
python自动化调用百度api解决验证码
Apr 13 Python
python中opencv实现图片文本倾斜校正
Jun 11 Python
分享python函数常见关键字
Apr 26 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新手上路(五)
2006/10/09 PHP
phpfans留言版用到的install.php
2007/01/04 PHP
php 随机生成10位字符代码
2009/03/26 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
根据json字符串生成Html的一种方式
2013/01/09 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
彪马法国官网:PUMA法国
2019/12/15 全球购物
应用心理学个人的求职信
2013/12/08 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
社区七一党员活动方案
2014/01/25 职场文书
质量承诺书范文
2014/03/27 职场文书
大学生求职信范文
2014/05/24 职场文书
教师一帮一活动总结
2014/07/08 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS