对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的print用法示例
Feb 11 Python
python分析网页上所有超链接的方法
May 08 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
pycharm 配置远程解释器的方法
Oct 28 Python
python队列Queue的详解
May 10 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
Python中logger日志模块详解
Aug 04 Python
Python extract及contains方法代码实例
Sep 11 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
python中os.path.join()函数实例用法
May 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共享内存段示例分享
2014/01/20 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
js静态作用域的功能。
2006/12/25 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
Python常用模块用法分析
2014/09/08 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
python实现超级马里奥
2020/03/18 Python
初学者学习Python好还是Java好
2020/05/26 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
店长助理岗位职责
2013/12/13 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
深入理解Pytorch微调torchvision模型
2021/11/11 Python
Docker安装MySql8并远程访问的实现
2022/07/07 Servers