对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实现的重启关机程序实例
Aug 21 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
python实现简单加密解密机制
Mar 19 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
Python configparser模块操作代码实例
Jun 08 Python
keras导入weights方式
Jun 12 Python
python实现商品进销存管理系统
May 30 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
php下通过POST还是GET来传值
2008/06/05 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
小学生操行评语
2014/04/22 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
孝女彩金观后感
2015/06/10 职场文书
聘任书范文大全
2015/09/21 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
高二数学教学反思
2016/02/18 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
php png失真的原因及解决办法
2021/10/24 PHP